for循环在C中只返回数组的第一个值

时间:2012-12-07 11:41:56

标签: c arrays loops for-loop

我是初学者。好吧,我只是尝试了数据结构,无法理解为什么我会收到错误。我认为发布我正在获得的代码和输出会更好。 (顺便说一句,我使用的是C-Free 4.0编译器)。所以这是代码

//编写一个C程序来输入和显示数组的元素

    #include <stdio.h>
    int main(int argc, char *argv[])
{
    int a[44],n,i=0;
    // No. of elements:
    printf("\n How many elements in all?");
    scanf("%d",&n);

    // Entering all elements:
    printf("\n\n Plz do enter the elements:");
    for(;i<n;i++)
    scanf("%d",&a[i]);

    // Displaying all elements:
    printf("\n Array elements are:");

     for(i=0;i<n;)
     {

       printf("\n a[%d]=%d",i,a[i]);
       i++;
       break;

     }

    int sum=0;
    for(i=0;i<n;i++)

    {
      sum=sum+a[i];

    }

    printf("\nSum=%d",sum);


    return 0;
}
/*
  And here's the output when I say that I'm entering 3 elements into the array:

   How many elements in all?3


 Plz do enter the elements:12
0
-22

 Array elements are:
 a[0]=12
Sum=-10Press any key to continue . . . */

好大家都可以看到,我可以输入值(i = 0; i

3 个答案:

答案 0 :(得分:4)

for(i=0;i<n;)
{
   printf("\n a[%d]=%d",i,a[i]);
   i++;
   break;
}

你已经放了一个break;所以它只打印1个元素。

删除break;,它将全部打印。

此外,您可以将i++放在条件i<n旁边,如下所示。

for(i=0;i<n;i++)
{
    printf("\n a[%d]=%d",i,a[i]);
}

答案 1 :(得分:2)

for(i=0;i<n;)
{
   printf("\n a[%d]=%d",i,a[i]);
   i++;
   break;
}

这里你正在使用的break语句让你走出循环。 删除break语句,它将打印数组的所有元素....

答案 2 :(得分:0)

for()循环可以两种方式使用,

for (Start value; end condition; increase value)
        statement;

Start value = initialization;
for (; end condition;){
        statement;
        increase value;
}

在您的代码中,Start值初始化为i = 0,因此您可以尝试任何一种方式,但最好先接受,以便于清晰。