输入十个浮点数比较绝对值大小,进行冒泡排序,由大到小输出,不知道哪里有问题。
#include
#include
int main(){
int i,j;
float s[10]={0.0},k;
for(i=0;i<10;i++)
scanf("%f",&s[i]);
for(i=0;i<9;i++)
for(j=0;j<9-i;j++){
if(fabs(s[j])<fabs(s[j+1]))
k=s[j];
s[j]=s[j+1];
s[j+1]=k;
}
for(i=0;i<9;i++) printf("%.2f,",s[i]);
printf("%.2f.",s[9]);
return 0;
}
输入样例
34.5 -234 90.3 23.5 24.8 1234 879.7 23.98 1287.73 -2340.8
输出
-2340.80,1287.73,23.98,24.80,24.80,24.80,23.50,34.50,34.50,34.50.
出现两个24.80,而且比较也出了问题
#include <stdio.h>
#include <math.h>
int main()
{
int i, j;
float s[10] = {0.0}, k;
for (i = 0; i < 10; i++)
scanf("%f", &s[i]);
for (i = 0; i < 9; i++)
for (j = 0; j < 9 - i; j++)
{
if (fabs(s[j]) < fabs(s[j + 1]))
{
k = s[j];
s[j] = s[j + 1];
s[j + 1] = k;
}
}
for (i = 0; i < 9; i++)
printf("%.2f,", s[i]);
printf("%.2f.", s[9]);
return 0;
}