社区讨论

测试点下载下来可以!但是就是过不了,大佬救命!!!!

P1051[NOIP 2005 提高组] 谁拿了最多奖学金参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo2uwf5r
此快照首次捕获于
2023/10/23 20:10
2 年前
此快照最后确认于
2023/10/23 20:10
2 年前
查看原帖
C
#include<iostream>
using namespace std;
int main(){
    int sum = 0,max = 0,n,i,j,solomoney;
    char tempname[100];
    char maxname[100];
    char temp;
    int tempsum,maxsum;
    int lastresult,classresult,paper;
    int control = 0;
    char stuganbu,weststu;
    cin>>n;
    getchar();
    //getchar();
    for(i = 0;i<n;i++){
        lastresult = 0;
        classresult = 0;
        paper = 0;
        control = 0;
        solomoney = 0;
        tempsum = 0;
        /*for(j = 0;j<99;j++){
        	tempname[j] = '\0';
		}*/
        while(~scanf("%c",&temp)){
            if(temp == '\n'){
                break;
            }
            if(temp == ' '){
                control++;
                continue;
            }
            if(control == 0){
                tempname[tempsum++] = temp;
            }else if(control == 1){
                lastresult = lastresult*10 + temp - 48;
            }else if(control == 2){
                classresult = classresult*10 + temp -48;
            }else if(control == 3){
                stuganbu = temp;
            }else if(control == 4){
                weststu = temp;
            }else if(control == 5){
                paper = paper*10 + temp - 48;
            }
        }
        //院士奖学金
        if(lastresult>80&&paper>=1){
            solomoney += 8000;
        }
        //五四奖学金
        if(lastresult>85&&classresult>80){
            solomoney += 4000;
        }
        //成绩优秀奖
        if(lastresult>90){
            solomoney += 2000;        
        }
        //西部奖学金
        if(lastresult>85&&weststu == 'Y'){
            solomoney += 1000;
        }
        //班级贡献奖
        if(classresult>80&&stuganbu == 'Y'){
            solomoney += 850;
        }
        sum += solomoney;
        if(max<solomoney){
            max = solomoney;
            for(j = 0;j<tempsum;j++){
                maxname[j] = tempname[j];
            }
            maxsum = tempsum;
        }
    }
    for(j = 0;j<maxsum;j++){
        cout<<maxname[j];
    }
    cout<<endl;
    cout<<max<<endl;
    cout<<sum;
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...