c数组在一行上

时间:2016-09-03 17:22:57

标签: c arrays

我必须用我的班级指针进行冒泡排序。 我输出有问题 我希望每个数组排序都在一行上,而不是每个元素的单独行。

这是我想要打印的数组示例。 我翻转了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#。

1 个答案:

答案 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()会自动打印换行符。