有10個學生,每個學生的資料包括學號,姓名,3門課的成績。對其進行處理
阿新 • • 發佈:2019-01-28
// 121213 第七章個習題5.cpp : 定義控制檯應用程式的入口點。 // /* * Copyright (c) 2012, 煙臺大學計算機學院 * All rights reserved. * 作 者: 劉同賓 * 完成日期:2012 年 12 月 13 日 * 版 本 號:v1.0 * * 輸入描述:有10個學生,每個學生的資料包括學號,姓名,3門課的成績。從鍵盤輸入10個學生資料,要求打印出3門課總平均成績,以及最高分的學生的資料(包括學號、姓名、3門課成績、平均分數) * 問題描述: * 程式輸出: * 問題分析:略 * 演算法設計:略 */ #include "stdafx.h" #include<iostream> #include<string> using namespace std; const int n=6; struct student //定義結構體變數 { string name; int num; double score[3]; double average; }student1[n]; int main() { int i,j; for(i=0;i<n;i++) { cout<<"請輸入第"<<i+1<<"個學生的資訊:"; cin>>student1[i].num >>student1[i].name >>student1[i].score[0]>>student1[i].score[1]>>student1[i].score[2]; } double sum=0; //各學生的平均成績 for(i=0;i<n;i++) { for(j=0;j<3;j++) { sum=sum+student1[i].score[j]; } student1[i].average=sum/3; sum=0; } //打印出各學生的資訊 cout<<"輸出各學生資訊:"<<endl; for(i=0;i<n;i++) { cout<<student1[i].num<<" " <<student1[i].name<<" " <<student1[i].score[0]<<" "<<student1[i].score[1]<<" "<<student1[i].score[2]<<" " <<student1[i].average <<endl; } //找出成績最高的那個學生並輸出其資訊 double max=student1[0].average; int row=0; for(i=0;i<n;i++) { if(max<student1[i].average) { max=student1[i].average; } row=i; } cout<<"最高分的學生的資料:"<<endl; cout<<student1[row].num<<" " <<student1[row].name<<" " <<student1[row].score[0]<<" "<<student1[row].score[1]<<" "<<student1[row].score[2]<<" " <<student1[row].average <<endl; //各科平均成績 double average1[3];//定義一個裝3門課的平均成績的陣列 sum=0; for(j=0;j<3;j++) { for(i=0;i<n;i++) { sum=sum+student1[i].score[j]; } average1[j]=sum/n; sum=0; } cout<<endl; for(i=0;i<3;i++)//輸出各門課的平均成績 { cout<<"第"<<i+1<<"門課的平均成績:"<<endl; cout<<average1[i] <<endl; } return 0; }