📄 9-14.txt
字号:
/* 范例:9-14(以VC++执行,请参考范例光盘源代码中的说明)*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct Scale /* 记录每个人各科成绩 */
{
char name[10];
int chi_sco;
int eng_sco;
int math_sco;
};
struct /* 记录各科总分 */
{
int chi;
int eng;
int math;
}Sum={0,0,0}; /* 全局,可省略初值0 */
/* 记录chi,eng,math最高分 */
struct
{
int max_chi; /* 最高分数 */
int max_eng;
int max_math;
char name_chi[10]; /* 最高分者的姓名 */
char name_eng[10];
char name_math[10];
}TopGuy;
void main(void)
{
struct Scale student[50]; /* 定义结构数组 */
int count=0;
char reTry='y';
do
{
printf("\n请输入学生姓名:");
scanf("%s",student[count].name);
printf("请输入语文成绩:");
scanf("%d",&student[count].chi_sco);
printf("请输入英文成绩:");
scanf("%d",&student[count].eng_sco);
printf("请输入数学成绩:");
scanf("%d",&student[count].math_sco);
Sum.chi += student[count].chi_sco; /* 各科计分 */
Sum.eng += student[count].eng_sco;
Sum.math += student[count].math_sco;
if(student[count].chi_sco > TopGuy.max_chi)
{
TopGuy.max_chi = student[count].chi_sco;
strcpy(TopGuy.name_chi,student[count].name);
}
if(student[count].eng_sco > TopGuy.max_eng)
{
TopGuy.max_eng = student[count].eng_sco;
strcpy(TopGuy.name_eng,student[count].name);
}
if(student[count].math_sco > TopGuy.max_math)
{
TopGuy.max_math = student[count].math_sco;
strcpy(TopGuy.name_math,student[count].name);
}
printf("是否继续输入?(请输入Y/N或y/n)");
do
{
reTry = getche();
}while((reTry!='Y')&&(reTry!='y')&&(reTry!='N')&&(reTry!='n'));
count++;
}while((reTry=='y')||(reTry=='Y'));
if(count>0)
{
clrscr();
printf("共输入%d人\n",count);
printf("语文平均%5.2f分,最高分%d分:%s\n", \
((float)Sum.chi/(float)count), \
TopGuy.max_chi,TopGuy.name_chi);
printf("英文平均%5.2f分,最高分%d分:%s\n", \
((float)Sum.eng/(float)count), \
TopGuy.max_eng,TopGuy.name_eng);
printf("数学平均%5.2f分,最高分%d分:%s\n", \
((float)Sum.math/(float)count), \
TopGuy.max_math,TopGuy.name_math);
}
getche();
}
程序执行结果:(假设输入两人分数:A,90,40,100、B,65,99,70)
共输入2人
语文平均77.50分,最高分90分:A
英文平均69.50分,最高分99分:B
数学平均85.00分,最高分100分:A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -