当前位置:编程学习 > C/C++ >>

C语言 FatMouse' Trade问题,改错,有点难

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;
}

上一个:C语言问题:内存的分配方式有哪几种?
下一个:C语言中怎么判定结构体数组中的某项元素为空

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,