点赞(0)
 

0.0分

6 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

timetrl 3年前 回复TA
@timetrl if(a==0&&b==0&&c==0&&x==0) 		break; 		arr3[x]=0;//采集过了的草药做个标记  		money=money+c;//将该草药的价值加入总价值中  		N=N-b;//从拥有的时间中减去采集该草药花费的时间,即得到剩下所拥有的时间  	} 	printf("%d",money); 	return 0; }
timetrl 3年前 回复TA
可以请教一下大佬为什么这个代码不行吗?
#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;
			}
		}