这是我写的程序,想要输入10个数字,每输入一个将输入的数字就从小到大排一下序,如果输入了0就提前结束。
报错的提示语复制在程序底下了,求大神们指导指导~
#include<stdio.h>
void main()
{
printf("input numbers\n");
int i,t,j,temp,k;
int a[10];
for(i=0;i<=9;i++)
{
scanf("%d",&t);
if(t!=0)
{
for(j=0;j<=i;j++)
{
if(t<a[j])
{
temp=a[j];
a[j]=t;
t=temp;
}
}
if(j==9)
{
for(k=0;k<=9;k++)
{
printf("%d\t",a[k]);
}
}
}
else
{
for(k=0;k<=9;k++)
{
printf("%d\t",a[k]);
}
}
}
}
不是啊,这个循环是把新加入的数t和之前的每一个数做比较
追答但是在你加入t之前,你的数组a里边是没有任何东西的,a里边的所有东西都是随机值,也就是说你没有给a里边存任何东西,你那句 t<a[j] 是没有任何意义的,就像一个房间里边本来就没有人,你还要信誓旦旦的说你要把里边的人怎么怎么样
可是记得教材上说只要在变量前定义就可以啊
追答编译器顺序编译,肯定要先定义数据呀。你那本书看到的?你说说看
神马,我用的也是VC++6.0啊~
可是我用我的电脑运行以前写的代码都没问题啊
但是我在编译这段代码的时候没有问题,只能代表在语法上没有问题,而算法上的问题就不清楚了。看你这个程序应该是没办法完成你想要的效果,至少需要初始化a[10],或者在输入时将值赋给数组a中的元素。