撰寫一個程式,實作從鍵盤輸入3個學生資料(每個學生的資料包括學號、姓名、2門課程的成績),輸出每個學生2門課的平均成績,以及最高分的學生的資料(包括學號、姓名、2門課的成績、平均分數)。
輸入格式:
輸入3個學生的資料,每個學生的資料占一行,格式如下: <學號> <姓名> <第一門課程成績> <第二門課程成績>
注意:學號/姓名中不包含空白符,學號為8位字符,姓名最多為20位字符。
輸出格式:
首先在第1行中依次輸出3名同學的平均成績,平均成績的輸出格式為占10位,小數點后保留1位。
在第2行中輸出最高分的學生的資料,格式如下: No=<學號>,Name=<姓名>,Score1=<第一門課程成績>,Score2=<第二門課程成績>,Average=<平均成績>
注:課程成績和平均成績輸出時保留1位小數且四舍五入處理。
輸入樣例:
20180001 zhangsan 70.0 80.0
20180002 lisi 95.0 89.0
20180003 wangwu 65.0 84.0
輸出樣例:
75.0 92.0 74.5
No=20180002,Name=lisi,Score1=95.0,Score2=89.0,Average=92.0
裁判測驗程式樣例:
#include<stdio.h>
int main( ){
/* 請在這里填寫答案 */
printf("\nNo=%s,Name=%s,Score1=%.1f,Score2=%.1f,Average=%.1f",s[max].no,s[max].name,s[max].score1,s[max].score2,s[max].average);
return 0 ;
}
這是我寫的代碼
struct student
{
char no[9];
char name[20];
float score1;
float score2;
float average;
}s[3];
int m,n,max;
float sum[3];
for(n=0;n<3;n++)
scanf("%s%s %f %f",s[n].no,s[n].name,&s[n].score1,&s[n].score2);
for(n=0;n<3;n++)
s[n].average=(s[n].score1+s[n].score2)/2.0;
printf(" %10.1f %10.1f %10.1f",s[0].average,s[1].average,s[2].average);
for(m=0;m<3;m++)
if(sum[n]>sum[m])
max=n;
uj5u.com熱心網友回復:
那可能就是它網站的bug了uj5u.com熱心網友回復:
printf里面的空格去掉試試看uj5u.com熱心網友回復:
20180001 zhangsan 70.0 80.020180002 lisi 95.0 89.0
20180003 wangwu 65.0 84.0
數值讀取錯誤?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/56542.html
標籤:C++ 語言
