2

我是初学者。好吧,我只是在尝试数据结构,但不明白为什么会出现错误。我认为发布代码和我得到的输出会更好。(我使用 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 . . . */

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

4

3 回答 3

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

你放了 abreak;所以它只打印 1 个元素。

删除它break;,它将打印所有内容。

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

for(i=0;i<n;i++)
{
    printf("\n a[%d]=%d",i,a[i]);
}
于 2012-12-07T11:44:23.513 回答
2
for(i=0;i<n;)
{
   printf("\n a[%d]=%d",i,a[i]);
   i++;
   break;
}

在这里,您使用的 break 语句让您脱离了循环。删除 break 语句,它将打印数组的所有元素....

于 2012-12-07T11:57:57.607 回答
0

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

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

或者

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

在您的代码中,Start 值被初始化为 i = 0,因此您可以尝试任何方法,但为了方便和清晰,最好首先接受更多。

于 2012-12-07T11:52:47.987 回答