可以请教一下大佬为什么这个代码不行吗?
#include <stdio.h>
int main()
{
int N;//拥有的时间
int M;//草药数目
scanf("%d%d",&N,&M);
int arr[100]={0};//采集花费的时间
int arr2[100]={0};//采集的价值
double arr3[100]={0};//每秒钟的价值
int i;
int money=0;//初始拥有的价值
for(i=0;i<M;i++)
{
scanf("%d%d",&arr[i],&arr2[i]);
arr3[i]=(double)arr2[i]/arr[i];
}
while(N>0)
{
int a=0;//用于比较每秒钟价值最大的草药
int b=0;//记录这个草药花费的时间
int c=0;//记录这个草药的价值
int x=0;//记录锁定的下标数
for(i=0;i<M;i++)
{
if((arr3[i]>a)&&(arr[i]<=N))//判断每秒钟价值最大的草药,但是采集花费的时间又不超过目前所拥有的时间
{
a=arr3[i];
b=arr[i];
c=arr2[i];
x=i;
}
}
timetrl 2021-12-16 21:54:40 |
if(a==0&&b==0&&c==0&&x==0) break; arr3[x]=0;//采集过了的草药做个标记 money=money+c;//将该草药的价值加入总价值中 N=N-b;//从拥有的时间中减去采集该草药花费的时间,即得到剩下所拥有的时间 } printf("%d",money); return 0; }