C数组问题...(打印和定义)

C array problems... (Printing and defining)

只是编写了一些代码来使用冒泡排序对数组进行排序,但一开始我什至无法定义数组并打印它。

代码:

#include <stdio.h>

int main ()  {

int test[] = {9,9,9,9,9};       //define array

test[2] = 3;

bool checker = false;           //is it sorted?

int i = 0;

for(int i = 0; i<=4; i++)                   //set random numbers for array
{
    int g;
    g = 4+i;
    test[i] = g;
    i++;
}

for (int i = 0; i <= 4; ++i )   //print array as normal
{

    printf(", ", test[i]);

}

执行时总是输出:

, , , ,

所以数组是空的?还是我打印错了?还是什么?

你打印错了。

您正在打印的行应显示为 printf("%d, ", test[i]);

也不是您将问题标记为 C++,而是使用了与 C 相关的术语。您的 #include <stdio.h> 应该替换为 #include <iostream> 并且您应该使用 cout 而不是 printf 来输出数据。

您的代码有两个问题。

首先,初始的'for'循环使用'i'作为它的计数器变量,你的递增条件是'i++'。这意味着 'i' 在每次循环迭代中自动递增;但是在循环中,您指定了 'i++',这意味着您将看到 'i' 的值在每次传递时增加 两次 。消除多余的增量。

其次,您打印的数组不正确。您需要添加一个格式限定符,例如 '%d' 以告诉 printf 使用第一个参数来替代该说明符。

最后,您为这段代码指定了 C++,但实际上不是。很经典的C.