⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9-14.txt

📁 《C/C++完美演绎》源代码
💻 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 + -