0

我是 c 新手,我正在尝试编写 ac 程序,该程序使用从键盘输入的 10 个整数值scanf,然后使用打印它们,printf但结果不正确。这是代码:

   #include<stdio.h>
    #include<conio.h>
    main(){
     int x[10];
     printf("\n\n\t\t PRGRAM THAT CAPTURES AND PRINTS 10 SCORES");
     for(int i=1;i<=10;i++){
     printf("\n\tEnter Score %d", i);
     scanf("%d",x);
    }
     printf("\n\t The entered scores are: %d",x[i]);
     return(0);
    }

给出的输出是一个四位数字,例如 8731,但我希望是 1234567890。请帮忙

4

3 回答 3

1

您需要创建一个新for循环来显示这些值,就像您在阅读它们时所做的那样。

PS:更好地格式化您的代码,稍后您会感谢它。

PS2:尽量避免conio.h,它不是标准的,你的代码甚至不需要它。

PS3:你的代码也是错误的。应该是for(int i=0;i<10;i++)。数组是从0to size-1,而不是 from 1to size。C 编译器不会警告您这i[10]是数组的无效索引。

于 2012-04-10T09:57:45.843 回答
0
   #include<stdio.h>
    #include<conio.h>

标题<conio.h>不是标准的。如果您不使用它,您将获得更好的便携性。无论如何,您的程序不使用其中的任何内容。

    main(){

该函数main()返回一个int. 养成这样明确地说的习惯(你也可能养成客观地指定它不带参数的习惯)。

     int x[10];
     printf("\n\n\t\t PRGRAM THAT CAPTURES AND PRINTS 10 SCORES");

为了在所有实现中更好地工作printf(),每个都以'\n'. 否则输出可能会出现乱序。

     for(int i=1;i<=10;i++){
     printf("\n\tEnter Score %d", i);
     scanf("%d",x);

试图在循环中始终读取到数组中的相同位置?

    }
     printf("\n\t The entered scores are: %d",x[i]);

该元素x[i]不存在。此时代码中,i大于最大的合法数组索引。

     return(0);
    }
于 2012-04-10T10:07:26.123 回答
0

尝试这个:

    #include<stdio.h>
    #include<conio.h>
    int main(){
     int x[10];
     printf("\n\n\t\t PRGRAM THAT CAPTURES AND PRINTS 10 SCORES");
     for(int i=0;i<10;i++){ //Change 1
         printf("\n\tEnter Score %d", i);
         scanf("%d",&x[i]); //Change 2
      }
     //Change 3
     for (int i=0; i<10; i++) 
         printf("\n\t The entered scores are: %d",x[i]);
     return(0);
    }
于 2012-04-10T10:00:13.770 回答