我必须用我的班级指针进行冒泡排序。 我输出有问题 我希望每个数组排序都在一行上,而不是每个元素的单独行。
这是我想要打印的数组示例。 我翻转了1和9,以确保我只返回一个数字时打印正确的值,而不是位置。
[9,2,3,4,5,6,7,8,1]
这是打印的内容
[9]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[1]
如何将此样本数组放在一行?
#include <stdio.h>
#define MAX 9
int val[] = {9, 2, 3, 4, 5, 6, 7, 8, 1};
int i;
int main(){
for (i = 0; i < MAX; i++
{ printf ("[%d]\n", val[i]);
}
return (0);
} //end main
现在我已经读过你不能输出到一行。我一直在读,你需要每个元素单独输出。 prof具有气泡指针的示例输出,表明该数组的所有元素都保留在同一行上。我错过了什么?
FYI这不是带指针的冒泡排序。我只是需要帮助让这个示例数组正确输出。 必须使用C,而不是C ++或C#。
答案 0 :(得分:0)
我真的不明白你为什么不删除导致换行符的\n
。然后将输出的不同部分分开。
#include <stdio.h>
#define MAX 9
int val[] = {9, 2, 3, 4, 5, 6, 7, 8, 1};
int i;
int main(void){
putchar('[');
for (i = 0; i < MAX; i++) {
if (i == MAX - 1)
printf ("%d", val[i]);
else
printf ("%d, ", val[i]);
}
puts("]");
return (0);
} //end main
您无法在循环中打印[
,否则每次都会打印。然后,在循环中,您要打印一个逗号,除非您位于最后一个元素,而下一个元素不应该打印(if (i == MAX - 1
)。最后,一旦循环结束,您将在最后打印换行符和结束括号。请注意puts()
会自动打印换行符。