1486 - 《C语言程序设计》江宝钏主编-习题9-1-平均分
用结构体数组的方法改写例9-1
【例9-1】按表9-1的形式从键盘依次输入每个学生的学号、姓名、出生年月、3门课的成绩,计算并打印出每个学生的平均成绩。
题目输入
第一行,整数n,表示一共有n个学生。
从第二行开始共n行,每行包含学号,姓名,出生年月,数学,英语,C语言,空格隔开,姓名不含空格,出生年月分开输入。
题目输出
共n行,每行包含学号,姓名,出生年/月,数学,英语,C语言,平均成绩。
输出浮点数使用%.0f,出生年月用/分开。
输入/输出样例
题目输入
2 901 hulei 1990 8 67 78 89 902 fangang 1991 7 85 69 76
题目输出
901 hulei 1990/8 67 78 89 78 902 fangang 1991/7 85 69 76 77
C语言解答
#include <stdio.h> typedef struct { int no; int name[20]; int year; int month; float math; float en; float c; float ave; }STU; int main(void) { STU xs[100]; int i,n; scanf("%d",&n); for (i=0;i<n;i++) { scanf("%d",&xs[i].no); scanf("%s",&xs[i].name); getchar(); scanf("%d",&xs[i].year); scanf("%d",&xs[i].month); scanf("%f",&xs[i].math); scanf("%f",&xs[i].en); scanf("%f",&xs[i].c); xs[i].ave=(xs[i].math+xs[i].en+xs[i].c)/3; } for (i=0;i<n;i++) { printf("%d ",xs[i].no); printf("%s ",xs[i].name); printf("%d/",xs[i].year); printf("%d ",xs[i].month); printf("%g ",xs[i].math); printf("%g ",xs[i].en); printf("%g ",xs[i].c); printf("%.0f\n",xs[i].ave); } return 0; }
C++解答
#include<iostream> #include<cstdio> using namespace std; struct stuent { int num; char name[50]; int year; int month; int math; int english; int cyy; double ave; } a[100]; int main() { int n; cin>>n; for (int i=1; i<=n; i++) { cin>>a[i].num>>a[i].name>>a[i].year>>a[i].month; cin>>a[i].math>>a[i].english>>a[i].cyy; a[i].ave=(a[i].math+a[i].english+a[i].cyy)/3.0; } for (int i=1; i<=n; i++) { printf("%d %s %d",a[i].num,a[i].name,a[i].year); printf("/%d %d %d",a[i].month,a[i].math,a[i].english); printf(" %d %.0lf\n",a[i].cyy,a[i].ave); } }