帮忙检查,对你们来说是很简单的程序呀!
输入10个数 按大小排序输出:#include "stdio.h "
void main()
{
int i,a[10],t,k;
for(i=1;i <=10;i++)
scanf( "%d ",&a[i]);
for(i=1;i <=10;i++)
for(k=i+1;k <=10;k++)
{
if(a[i]> a[k])
{t=a[i];
a[i]=a[k];
a[k]=t;
}
}
for(i=1;i <=10;i++)
printf( "%d ",a[i]);
}
[解决办法]
int i,a[11],t,k;
[解决办法]
是
当然可以不从0开始
不从0开始,就意味着你的第0个元素浪费不用
那么你就不能申明的时候a[10]
而要a[11]
额外增加一个开销
你又不增加存储开销, 又不从0开始,那么就会产生越界问题
越界编译器不给你检查, 运行错误还是正确看你的运气了
如果越界越到系统关键区域,很危险
如果跑到无所谓地方,不会提示错误