想請問為什么我寫的循環(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]; ? ? ?//初始化第一個元素為最小
if(arr[j]<arr[0])
{
min=arr[j];
arr[j]=arr[0];
arr[0]=min;
}
}
}
printf("*********\n");
for(i=0;i<=9;i++)
{
printf("排序之后:%.2f\n",arr[i]);
}
return 0;
}
2017-03-13
min=arr[0]; 改為min=arr[i];?arr[0]=min;改為arr[i]=min;
內(nèi)部循環(huán)是找最小值,然后放在數(shù)組靠左邊,外部循環(huán)類似把最小值去掉后的左界
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[i]; ? ? ?//初始化第一個元素為最小
if (arr[j]<arr[i])
{
min = arr[j];
arr[j] = arr[i];
arr[i] = min;
}
}
}