天空蓝动漫:给这段程序加点注释 C语言

来源:百度文库 编辑:高考问答 时间:2024/04/29 10:27:19
题目:
设李红.王建.赵明三名同学某年考了八门课程.要求分别统计出这三名同学学年总成绩.并按八门课程的总成绩高低排序.

#include <string.h>
#include <conio.h>
struct student
{
char name[10];
float score[8];
float total;
};
void main()
{
struct student person[3];
struct student temp;

int i,j;
float t;
strcpy(person[0].name,"Lihong");
strcpy(person[1].name,"Wangjian");
strcpy(person[2].name,"Zhaoming");
for (i=0;i<3;i++)
{
printf("Please input scores of %s:",person[i].name);
person[i].total=0;
for (j=0;j<8;j++)
{
scanf("%f",&t);
person[i].total+=t;
person[i].score[j]=t;
}
}

for (i=0;i<2;i++)
for (j=i+1;j<3;j++)
if (person[i].total<person[j].total)
{temp=person[i]; person[i]=person[j];person[j]=temp;}
for (i=0;i<3;i++)
printf("No.%d: %10s %4.1f\n",i+1,person[i].name, person[i].total);
}

#include <string.h>
#include <conio.h>
struct student //定义存放学生数据的结构体类型
{
char name[10]; //学生名字,最长9字节
float score[8]; //八门课程的得分
float total; //总分
};
void main()
{
struct student person[3]; //声明学生个数为3
struct student temp; //临时数据,交换两个学生数据作中间量

int i,j;
float t;
strcpy(person[0].name,"Lihong");//姓名赋值
strcpy(person[1].name,"Wangjian");
strcpy(person[2].name,"Zhaoming");
for (i=0;i<3;i++) //输入三个学生数据
{
printf("Please input scores of %s:",person[i].name); //提示文字
person[i].total=0; //总分清零
for (j=0;j<8;j++) //输入一个学生的得分
{
scanf("%f",&t); //输入一个学生一门课程得分
person[i].total+=t; //将得分加入总分
person[i].score[j]=t; //将得分保存到学生纪录里
}
}

for (i=0;i<2;i++) //选择法排血
for (j=i+1;j<3;j++)
if (person[i].total<person[j].total)
{temp=person[i]; person[i]=person[j];person[j]=temp;} //交换两学生数据
for (i=0;i<3;i++) //输出3名学生数据
printf("No.%d: %10s %4.1f\n",i+1,person[i].name, person[i].total); //按行输出姓名可总分
}

见到懒人了。。。。。。。

#include <string.h> /*
#include <conio.h>
struct student /*定义结构体,存放学生信息(姓名,各科分数,总分)*/
{
char name[10];
float score[8];
float total;
};
void main()
{
struct student person[3]; /*定义结构体变量*/
struct student temp;

int i,j;
float t;
/*把三个人的名字存入结构体变量中*/
strcpy(person[0].name,"Lihong");
strcpy(person[1].name,"Wangjian");
strcpy(person[2].name,"Zhaoming");
/*外循环是分别输入三个同学的信息*/
for (i=0;i<3;i++)
{
printf("Please input scores of %s:",person[i].name);
/*先把总分负0*/
person[i].total=0;
/*内循环是对每个学生的8科成绩进行输入值,计算总成绩*/
for (j=0;j<8;j++)
{
scanf("%f",&t); /*输入成绩*/
person[i].total+=t; /*计算总成绩*/
person[i].score[j]=t; /*对各科付值*/
}
}
/*比较三个学生总成绩的高底*/

for (i=0;i<2;i++)
for (j=i+1;j<3;j++)
if (person[i].total<person[j].total)
{temp=person[i]; person[i]=person[j];person[j]=temp;}
/*按总成绩高低排序输出*/
for (i=0;i<3;i++)
printf("No.%d: %10s %4.1f\n",i+1,person[i].name, person[i].total);
}
粗略写了一下,应该没有什么问题,只是语言组织上有很大的欠缺!!