#include <stdio.h>
#define N 10
int d(int score[])
{
int i;
int j;
for(i=8;i>=0;i++)
{
for(j=0;j<=i;j++)
{
if(score[j]<score[j+1])
{
int mtc;
mtc=score[j];
score[j]=score[j+1];
score[j+1]=mtc;
}
}
}
for(i=0;i<10;i++)
{
if(i!=9)
{
printf("%d,",score[i]);
}
else
{
printf("%d",score[i]);
}
}
return 0;
}
int main()
{
int score[N]={67,98,75,63,82,79,81,91,66,84};
d(score);
return 0;
排序父循环i--,不是自加
我用的冒泡是这样写的
#include<stdio.h>
int main()
{
int i[]={0,.7,2,3,5,4,1,6,9}
int a = sizeof(i)/sizeof(i[0])-1;//这个占的字符长度除以类型也就是数组里面的个数,-1是循环次数
iht b = 1;
int c;
while(b)
{
b = 0;//不能变成死循环对吧
for(c=0;c<a;c++)
{
if(i[c]<i[c+1])
{
buf = i[c];
i[c] = i[c+1];
i[c+1] = buf;
b = 1; //如果有比较给b为真
}
}
a--;//应为每次比较完之后最大的值会存在最前面,所以为了占内存?
}
for(a=0;a<sizeof(i)/sizeof(i[0]);a++)
{
printf("%d\t",i[a]);
}
return 0;
getchar();//应为我用的是VS编译器.
}
把i++改成i--(这种细节我也老错)?
第一个for循环是死循环