主题:自己编的程序没有达到自己想到的效果,求下改进!
我是想写能存入50个数字的,但遇到负数就停止存入,进行排序!但是我怎么也想不通为什么没有进行排序。希望大家帮帮忙。谢谢!下面是代码。C99的!
#include <stdio.h>
#define NUM 50
float fidmin(float[],int);
int main()
{
float val[NUM];
int i,move=0;
float min;
for(i=0;i<NUM;i++)
{
printf("请输入分数,输入完后请输入一负数表示:");
scanf("%f",&val[i]);
if(val[i]<0)
break;
move++;
}
for(i=0;i<move;i++)
{
printf("第%d个为%6.2f\n",i+1,val[i]);
}
min=fidmin(val,move);
printf("所输入的数字按降序排序依次为:\n");
for(i=0;i<move;i++)
printf("%6.2f\n",val[i]);
printf("%f",min);
return 0;
}
float fidmin(float vals[],int num)
{
int i,j,minxd;
float min=0,temp;
for(i=0;i<(num-1);i++);
{
for(j=1;j<num;j++)
{
if(vals[j]<vals[j-1])
{
temp=vals[j];
vals[j]=vals[j-1];
vals[j-1]=temp;
min++;
}
}
}
return(min);
}
#include <stdio.h>
#define NUM 50
float fidmin(float[],int);
int main()
{
float val[NUM];
int i,move=0;
float min;
for(i=0;i<NUM;i++)
{
printf("请输入分数,输入完后请输入一负数表示:");
scanf("%f",&val[i]);
if(val[i]<0)
break;
move++;
}
for(i=0;i<move;i++)
{
printf("第%d个为%6.2f\n",i+1,val[i]);
}
min=fidmin(val,move);
printf("所输入的数字按降序排序依次为:\n");
for(i=0;i<move;i++)
printf("%6.2f\n",val[i]);
printf("%f",min);
return 0;
}
float fidmin(float vals[],int num)
{
int i,j,minxd;
float min=0,temp;
for(i=0;i<(num-1);i++);
{
for(j=1;j<num;j++)
{
if(vals[j]<vals[j-1])
{
temp=vals[j];
vals[j]=vals[j-1];
vals[j-1]=temp;
min++;
}
}
}
return(min);
}