我是c的新手,我正在尝试编写一个c程序,使用scanf
从键盘输入10个整数值,然后使用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.请帮助
答案 0 :(得分:1)
您需要创建一个新的for
循环来显示值,就像您在阅读时一样。
PS:更好地格式化你的代码,稍后你会感谢它。
PS2:尽量避免conio.h
,这不是标准,你甚至不需要代码。
PS3:你的代码也错了。应该是for(int i=0;i<10;i++)
。数组从0
到size-1
,而不是从1
到size
。 C编译器将不警告您i[10]
是您的数组的无效索引。
答案 1 :(得分: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);
}
答案 2 :(得分: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);
}