题目描述 某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(> 80),并且在本学期内发表1篇或1篇以上论文的学生均可获得; 2) 五四奖学金,每人4000元,期末平均成绩高于85分(> 85),并且班级评议成绩高于80分(> 80)的学生均可获得; 3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(> 90)的学生均可获得; 4)

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include <string.h>

struct stu

{

    char name[20];

    int m;

    int o;

    char x;

    char y;

    int z;

}arr[101];

int main()

{

    int n,i;

    scanf("%d",&n);

    for(i=1;i<=n;i++)

    {

        scanf("%s",arr[i].name);

        scanf("%d",&arr[i].m);

        scanf("%d",&arr[i].o);

        scanf("%c",&arr[i].x);

        scanf("%c",&arr[i].y);

        scanf("%d",&arr[i].z);

    }

    int arr1[101]={0};

    for(i=1;i<=n;i++)

    {

        arr1[i]=0;

        if((arr[i].m>80)&&(arr[i].z>=1))

        arr1[i]=arr1[i]+8000;

        if((arr[i].m>85)&&(arr[i].o>80))

        arr1[i]=arr1[i]+4000;

        if(arr[i].m>90)

        arr1[i]=arr1[i]+2000;

        if((arr[i].m>85)&&(arr[i].y=='Y'))

        arr1[i]=arr1[i]+1000;

        if((arr[i].o>80)&&(arr[i].x=='Y'))

        arr1[i]=arr1[i]+850;

    }

    int max;

    max=0;

    int sum;

    sum=0;

    for(i=1;i<=n;i++)

    {

        sum=sum+arr1[i];

        printf("%d\n",sum);

    }

    for(i=1;i<=n;i++)

    {

        if(arr1[i]<arr1[i+1])

        {

            max=i+1;

        }

    }

    printf("%s\n%d\n",arr[max].name,arr1[max]);



    printf("%d",sum);

    return 0;

}


南柯一梦1996
浏览 5065回答 1
1回答

慕粉4409362

int arr1[101]   应该改成  struct stu arr1[101]
打开App,查看更多内容
随时随地看视频慕课网APP