4 条题解

  • 0
    @ 2025-12-3 22:23:34
    #include <stdio.h>
    #include <string.h>
    int main(){
        int n;
        scanf("%d",&n);
        while(n--){
            int x,sum=0,sum2=0;
            char name[25];
            scanf("%d",&x);
            while(x--){
                char a[25];
                scanf("%s",a);
                int b,c,d;
                scanf("%d%d",&b,&c);
                char e,f;
                scanf(" %c %c",&e,&f);//注意空格
                scanf("%d",&d);
                int temp=0;
                if(b>80&&d>0){temp+=8000;}
                if(b>85&&c>80){temp+=4000;}
                if(b>90){temp+=2000;}
                if(b>85&&f=='Y'){temp+=1000;}
                if(c>80&&e=='Y'){temp+=850;}
                sum+=temp;
                if(temp>sum2){
                    sum2=temp;
                    strcpy(name,a);
                }
            }
            printf("%s\n",name);
            printf("%d\n",sum2);
            printf("%d\n",sum);
        }
        return 0;
    }
    
    • 0
      @ 2025-12-2 22:21:25

      #include<stdio.h> struct student { char s[100],m,n; int a,b,c; }; int main() { int d; struct student arr[100]; scanf("%d",&d); while(d--) { int e,sum=0; int k[100]={0}; int f=k[0],g=0; scanf("%d",&e); for(int i=0;i<e;i++) { scanf("%s %d %d %c %c %d",arr[i].s,&arr[i].a,&arr[i].b,&arr[i].m,&arr[i].n,&arr[i].c); if(arr[i].a>80&&arr[i].c>0) k[i]=k[i]+8000; if(arr[i].a>85&&arr[i].b>80) k[i]=k[i]+4000; if(arr[i].a>90) k[i]=k[i]+2000; if(arr[i].a>85&&arr[i].n=='Y') k[i]=k[i]+1000; if(arr[i].b>80&&arr[i].m=='Y') k[i]=k[i]+850; sum=sum+k[i]; if(k[i]>f) { f=k[i]; g=i; } } printf("%s\n",arr[g].s); printf("%d\n",f); printf("%d\n",sum); } return 0; }

      • 0
        @ 2025-10-9 17:43:23
        #include<stdio.h>
        #include<string.h>
        struct student
        {
            char name[100];
            int finalscore;//期末成绩
            int classscore;//班级评价成绩
            char is_cadre;//干部,太想进步了
            char is_west;//西部省份
            int papers;//论文
            int total;//总奖金
        };
        int main()
        {
            int n,x;//n组,整数x
            scanf("%d",&n);
        for(int k=0;k<n;k++)
        {
            scanf("%d",&x);
        struct student student[x];//学生总数x个
        int all=0;//x个学生总和
        int max=0;//最能拿的学生
        for(int i=0;i<x;i++)//判定X个
        {
            scanf(" %s %d %d %c %c %d",
            student[i].name,
            &student[i].finalscore,
            &student[i].classscore,
            &student[i].is_cadre,
            &student[i].is_west,
            &student[i].papers);//录入数据完毕
            student[i].total = 0;
        if(student[i].papers>=1&&student[i].finalscore>80)
        {student[i].total+=8000;}
        if(student[i].finalscore>85&&student[i].classscore>80)
        {student[i].total+=4000;}
        if(student[i].finalscore>90)
        {student[i].total+=2000;}
        if(student[i].is_west == 'Y'&&student[i].finalscore>85)
        {student[i].total+=1000;}
        if(student[i].is_cadre == 'Y'&&student[i].classscore>80)
        {student[i].total+=850;}
        all +=student[i].total;//all是所有人的综合,total是单个人的拿到手的
        //开始找最优秀的那个货
        if(student[i].total>student[max].total)
        {
           max=i;
        }
        }
        printf("%s\n",student[max].name);
        printf("%d\n",student[max].total);
        printf("%d\n",all);
        }
        return 0;
        }
        
        • 0
          @ 2023-10-20 11:18:54
          #include<stdio.h>
          struct node
          {
          	char name[1000];
          	int a,b;//期末成绩 班成绩 
          	char x[10],y[10];//干部 省 
          	int num;//论文 
          }; 
          
          int main()
          {
          	int n;
          	scanf("%d",&n);
          	struct node arr[100];
          	while(n--){
          		int x;
          		scanf("%d",&x);
          		int sum[10000]={0};
          		int all=0;
          		int flag1=0;
          		int num1=0;
          		for(int i=0;i<x;i++){
          			scanf("%s %d %d %s %s %d",arr[i].name,&arr[i].a,&arr[i].b,arr[i].x,arr[i].y,&arr[i].num);
          			if(arr[i].a>80&&arr[i].num>0){
          				sum[i]+=8000;
          			}
          			if(arr[i].a>85&&arr[i].b>80){
          				sum[i]+=4000;
          			}
          			if(arr[i].a>90){
          				sum[i]+=2000;
          			}
          			if(arr[i].a>85&&arr[i].y[0]=='Y'){
          				sum[i]+=1000;
          			}
          			if(arr[i].b>80&&arr[i].x[0]=='Y'){
          				sum[i]+=850;
          			}
          			all+=sum[i];
          		
          			if(flag1<sum[i]){
          				flag1=sum[i];
          				num1=i;
          			}
          			if(i==(x-1)){
          				printf("%s\n",arr[num1].name);
          				printf("%d\n",flag1);
          				printf("%d\n",all);
          			}
          		}
          	
          	}
          	return 0;
          }
          
          • 1

          信息

          ID
          141
          时间
          1000ms
          内存
          128MiB
          难度
          8
          标签
          (无)
          递交数
          1491
          已通过
          235
          上传者