為什么我的循環(huán)語句沒有起到排序的作用呢
#include <stdio.h>
int main()
{
? ? double arr[] = {1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};
int i,j;
double min;
for(i=0;i<=9;i++)
{
printf("排序之前:%.2f\n",arr[i]);
}
for(i=0;i<=9;i++) ? ? //循環(huán)一共要進(jìn)行10趟,每趟將
{
for(j=i;j<=9;j++)
{
min=arr[0]; ? ? ?//初始化第一個(gè)元素為最小
if(arr[j]<arr[0])
{
arr[0]=arr[j];
arr[j]=min;
min=arr[0];
}
}
}
printf("*********\n");
for(i=0;i<=9;i++)
{
printf("排序之后:%.2f\n",arr[i]);
}
return 0;
}
2017-03-14
j應(yīng)該從0開始,而且j<10-i,因?yàn)榈谝粋€(gè)值要比較9次。。。下面是我的代碼,你可以參考一下
for(i=1;i<=10;i++)
{
for(j=0;j<10-i;j++)
{
if(score[j+1]>score[j])
? ?{
temp=score[j+1];
score[j+1]=score[j];
score[j]=temp;? }
}
}
? ? ? ? for(i=9;i>=0;i--)
{
printf("%d",score[i]);?
? ? printf(" ? ");
}