首页 > 试题广场 >

有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,

[问答题]

10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学

生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。

推荐

#include<stdio.h>

#define N 10

struct student

{char num[6]:

char name[8]:

float score[3]:

float avr;

}stu[N];


int main()

{int i,j,maxi;

float sum,max,average;

for(i=0;i<N;i++)

{printf("input scores of student %d:\n",i+1):

printf("NO.:");

scanf("%s",stu[i].num);

printf("name:");

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

for(j=0;j<3;j++)

{printf("score %d:",j+1);

scanf("%f",&stu[i].score[j]);

}

}


average=0;

max=0;

maxi=0;

for(i=0;i<N;i++)

{sum=0;

for(j=0;j<3;j++)

sum+=stu[i].score[j];

stu[i].avr=sum/3.0;

average+=stu[i].avr,

if(sum>max)

{max=sum;

maxi=i;

}

}

average/=N;


printf("  NO.  name  score1  score2  score3  average\n");

for (i=0;i<N;i++)

{printf("%5s%10s",stu[i].num,stu[i].name);

for(j=0;j<3;j++)

printf("%9.2f",stu[i].score[j]);

printf("   %8.2f\n",stu[i].avr);

}

printf("average=%5.2f\n",average);

printf("The highest score is:student %s,%s\n",stu[maxi].num,stu[maxi].name);

printf( "his scores are:%6.2f,%6.2f,%6.2f,average:%5.2f.\n",

stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);

return 0;

}


发表于 2018-03-25 10:34:33 回复(0)
有个问题,就是如何在C++ 中输出保留两位小数的值,在网上找了一些方法,无济于事,特此请教
#include<iostream>
#include<string.h>
#include<iomanip>
using namespace std;
typedef struct student{
    int num;
    char name[20];
    int score[3];
    float ave;
    
}student;


int main(){
    int n;
    cin>>n;
    student stu[n];
    for(int i=0;i<n;i++){
        cin>>stu[i].num>>stu[i].name>>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2];
    }
    int sum1=0,sum2=0,sum3=0;
    for(int i=0;i<n;i++){
        stu[i].ave=(stu[i].score[1]+stu[i].score[2]+stu[i].score[0])/3;
        sum1+=stu[i].score[0];
        sum2+=stu[i].score[1];
        sum3+=stu[i].score[2];
    }
    float a=sum1/n;
    
    cout.setf(ios::fixed);
    cout<<a<<" "<<sum2/n<<" "<<sum3/n<<endl;
    float max=stu[0].ave;
    int flag;
    for(int i=0;i<n;i++){
        if(stu[i].ave>max){
            max=stu[i].ave;
            flag=i;
        }
    }
    cout<<stu[flag].num<<" "<<stu[flag].name<<" "<<stu[flag].score[0]<<" "<<stu[flag].score[1]<<" "<<stu[flag].score[2]<<endl;
    return 0;
}
发表于 2019-08-11 09:34:58 回复(0)