#include <stdio.h>
void main()
{/*
int a[10],i,j,t;
printf("shuru:");
for(i=10;i>0;i--)
{
scanf("%d",&a[i]);
}
for(i=10;i>0;i--)
for(j=0;j<i;j++)
{
if(a[j]>a[j+1])
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=10;i>0;i--)
printf("%d ",a[i]);
}*/
int a[11],i,j,t;
printf("shuru:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
for(j=10;j>i;j--)
{
if(a[j]<a[j-1])
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
for(i=1;i<11;i++)
printf("%d",a[i]);
}
这两个运行之后都没法正常排序!要么就出一大堆负数
要么就程序错误 然后只能点不发送了..
请高手们教教我这个东西吖!
怎样写算正确?
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int a[10],i,j,t;
printf("shuru:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
/*Write by cherry*/
[此贴子已经被作者于2005-12-5 23:05:10编辑过]
----------------解决方案--------------------------------------------------------
第一个代码里面的for(初值;循环体;增值)有问题.
然后两个代码里面的if语句体掉了{ }
其实再好好顺着你自己的思路看一遍就可以找到问题了...
升序和降序只需改变if语句里的<,>.
----------------解决方案--------------------------------------------------------
啊! 搞明白拉~ 万分感谢啊..
我是菜到一定程度了..! 谢谢指点咯!!
----------------解决方案--------------------------------------------------------
第一段程序里面.. 你那个赋值语句还能给a[10]赋值啊.?? 我郁闷了..a[10]什么时候可以取11个下标变量了哦.?? 偶看的书上都没这么教过偶...
----------------解决方案--------------------------------------------------------
哈,这个问题和我昨天的是一样得啊,最简单的冒泡啊 !!!~!~
----------------解决方案--------------------------------------------------------