想将输入的10个数反序打印出,但写了下面这个程序后,数组的第一个数老是不正确,还望各位指点迷津啊,谢谢啦!小生初来乍到,破多疑惑啊! #include <stdio.h>
main() { int a[10]; int i,j;
for (i = 1; i < 10; i++) { scanf("%d\n",&a[10-i]); } printf("%d\n",a[0]);
for (j = 0; j < 10; j++) printf("%d\t",a[j]);
}
改动两处! #include <stdio.h> main() { int a[10]; int i,j;
for (i = 1; i <= 10; i++) //change { scanf("%d",&a[10-i]); //change } printf("%d\n",a[0]);
for (j = 0; j < 10; j++) printf("%d\t",a[j]); }
兄弟不好意思,你范了个错误,在C语言里好像数组是从0开始的,定义时,下标表示数组的长度,所以你在输入数据时,往a[10]中输入数据时,会出现错误的所以要改一下 #include <stdio.h> main() { int a[10]; int i,j;
for (i = 0; i < 10; i++) //change { scanf("%d",&a[9-i]); //change }
for (j = 0; j < 10; j++) printf("%d\t",a[j]); }
兄弟不好意思,你范了个错误,在C语言里好像数组是从0开始的,定义时,下标表示数组的长度,所以你在输入数据时,往a[10]中输入数据时,会出现错误的所以要改一下 #include <stdio.h> main() { int a[10]; int i,j;
for (i = 0; i < 10; i++) //change { scanf("%d",&a[9-i]); //change }
for (j = 0; j < 10; j++) printf("%d\t",a[j]); }
可是我上面的程序从来就没有a[10]赋值啊,难道i<=10就给a[10]赋值了,不会吧。。。 不过你的程序好像也没有什么问题。。。