判断有问题
查看原帖
判断有问题
590596
Gnasvl楼主2022/2/6 11:02

死循环下第一个for循环中的判断有什么问题啊?总是判断不了

#include<iostream>
#include<cmath>
using namespace std; 
int t[105],j[105],b[105],kk[105];//kk[i]==j[i]/t[i] ,b[i]==trun/fl
int main(){
	int n;
	int time,jj=0;
	int MAX=-1,jjj=n,MIN=1000000;//MAX=价值/时间,MIN最小时间 
	cin>>time>>n;
	for(int i=1;i<=n;i++){
		cin>>t[i]>>j[i];
		kk[i]=j[i]/t[i];
	}
	int o=0,m=0;
	for(;;){
		o=0;
		for(int i=1;i<=n;i++){
			if(b[i]==0){
				if(kk[i]>MAX){
					MAX=kk[i];
				}				
			}
		}
		for(int i=1;i<=n;i++){
	    	if(kk[i]==MAX&&b[i]==0){
	    		time-=t[i];
	    		jj+=j[i];
	    		b[i]=1;
	    		cout<<j[i]<<endl;
	    	}
	    }
	    for(int i=1;i<=n;i++){
	    	if(b[i]==1){
	    		o++;
	    	}
	    }
	    for(int i=1;i<=n;i++){
	    	if(b[i]==0&&t[i]<MIN){
	    		MIN=t[i];
	    	}
	    }
	    if(o==n){
	    	break;
	    }
	    if(time<MIN){
	    	break;
	    }
	}
	cout<<jj;
	return 0;
}

各位犇犇帮我看看吧

2022/2/6 11:02
加载中...