C语言 FatMouse' Trade问题,改错,有点难
C语言 FatMouse' Trade问题,改错,有点难,题目网上有
追问:随风,嘿嘿,我都等的睡着了http://pat.zju.edu.cn/onlinejudge/showContestRuns.do?contestId=32
patuser018是我的账户,,我提交的程序都没过,我问了身边的人,他们说可能程序有漏洞你没看出来,
C语言 FatMouse' Trade问题,改错,有点难,题目网上有
追问:随风,嘿嘿,我都等的睡着了http://pat.zju.edu.cn/onlinejudge/showContestRuns.do?contestId=32
patuser018是我的账户,,我提交的程序都没过,我问了身边的人,他们说可能程序有漏洞你没看出来,
答案:我这里两个编译都没错啊,你那里哪里报的错?#include<stdio.h>
#include<conio.h>
int main(void)
{
int m,n,i,z,j[1000],k[1000];
int temp1,temp2;
float temp,sum=0;//性价比用的是folat类型,sum未付初值
float l[1000];//l数组存放性价比
scanf("%d",&m); //输入老鼠拥有的猫粮
scanf("%d",&n);//输入猫所拥有的粮食种类
for(i=0;i<n;i++)
{
scanf("%d,%d",&j[i],&k[i]);//输入猫的粮食总量j以及所需猫粮的兑换值k,两个整数之间要有间隔,避免出错
l[i]=(float)j[i]/k[i];//l数组计算性价比
}
for(i=0;i<n;i++)
for(z=i;z<n;z++) //该冒泡排序完全错误
if (l[i]<l[z]) //将性价比最高的交易放到l数组前面
//同时调换k数组和j数组的顺序
{
temp=l[i]; temp1=j[i]; temp2=k[i];
l[i]=l[z]; j[i]=j[z]; k[i]=k[z];
l[z]=temp; j[z]=temp1; k[z]=temp2;
} for(i=0;i<n;i++)
{
if(m>k[i])
{ sum+=j[i];
m-=k[i];
}
else sum+=l[i]*m;
}
printf("%.3f\n",sum);
getch();
return 0;
}