c语言打印成绩单
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提问者采纳
#include "stdio.h"
#include "string.h"
#define M 2 //班级总人数
#define L 20 //姓名长度
#define N 4 //课程总数
//定义结构体类型
typedef struct student{
int num; //姓名
char *name; //学号
float score[N]; //各科成绩
}stuType;
//函数声明
void initial(); //初始化
void staOfStudent(); //个人统计
void staOfClass(); //班级统计
void addStudent(); //增加一名学生的信息
void outStuInformation(char str[L]); //输出一名学生的信息void search(); //查找某个学生
//全局变量声明
stuType stu[M];
int curStuCount=0; //当前学生人数
//主函数
void main(){
initial(); //初始化
printf("\n");
staOfStudent(); //个人统计
printf("\n");
staOfClass(); //班级统计
printf("\n");
search(); //查找某个学生
}
//函数定义
void initial(){ //初始化
int i;
printf("该班级共%d人,\n",M);
for(i=0;i addStudent(); //增加一名学生的信息 } void staOfStudent(){ //个人统计 int i,j; float ave[N]={0.0}; //存放每个学生的平均成绩 float sum[N]={0.0}; //存放每个学生的总成绩 for(i=0;i for(j=0;j sum[i]+=stu[i].score[j]; ave[i]=sum[i]/N; printf("学生%s的总分为:%.2f,平均分 为:%.2f\n",stu[i].name,sum[i],ave[i]); } } void staOfClass(){ //班级统计 int i,j; float ave[N]={0.0}; float sum[N]={0.0}; for(i=0;i for(j=0;j sum[i]+=stu[j].score[i]; ave[i]=sum[i]/M; printf("该班级第%门课程的平均分为:%.2f\n",i+1,ave[i]); } } void addStudent(){ //增加一名学生的信息 int k; printf("\n请输入第%d名学生的学号,姓名:\n",curStuCount+1); scanf("%d,%s",&stu[curStuCount].num,&stu[curStuCount].name);//注意输入时学号与姓名用“,”隔开 for(k=0;k printf("第%d门课程成绩:",k+1); scanf("%f",&stu[curStuCount].score[k]); } curStuCount++; //计数器+1 } void outStuInformation(char str[L]){ //输出一名学生的信息 int i,j; for(i=0;i if(strcmp(str,stu[i].name)==0){ printf("该学生信息如下:\n"); printf("学号:%3d 姓 名:%6s\n",stu[i].num,stu[i].name); printf("成绩:"); for(j=0;j printf("%.2f",stu[i].score[j]); printf("\n"); break; } if(i>=M) printf("没有找到该学生的信息.\n"); } void search(){ //查找某个学生 char tmpStr[L]; printf("请输入要查找的学生姓名:"); scanf("%s",tmpStr); outStuInformation(tmpStr); //调用outStuInformation函数}