C阵列问题......(打印和定义)

时间:2015-02-12 14:15:01

标签: c arrays printf

只需编写一些代码来使用冒泡排序对数组进行排序,但在开始时我甚至无法定义数组并将其打印出来。

代码:

#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]);

}

执行时总是输出:

, , , ,

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

2 个答案:

答案 0 :(得分:4)

你打印错了。

您要打印的行应为printf("%d, ", test[i]);

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

答案 1 :(得分:0)

您的代码中存在两个问题。

首先,初始'for'循环使用'i'作为其计数器变量,并且您的增量条件为'i ++'。这意味着'i'会在每次循环迭代中自动递增;但是在循环中,你指定'i ++',意味着每次传递你都会看到'i'的值两次。消除无关的增量。

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

最后,你已经为这段代码指出了C ++,但事实并非如此。这是经典的C。