1486 - 《C语言程序设计》江宝钏主编-习题9-1-平均分

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

用结构体数组的方法改写例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);
	}
}