C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。
有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。[标签...
有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。 有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。 [ 标签:数组 结构体,函数,结构体 ] 有10个学生,每个学生的数据包括学号、姓名、三门课的成绩、总成绩和平均成绩,从键盘输入10个学生的数据(包括学号、姓名及3门课的成绩),要求打印出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩,最后在打印出3门课的总平均成绩及最高分的学生的数据(包括姓名和总成绩)。要求:
1,根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。
2,用input函数从键盘上输入10个学生的数据。
3,用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩。
4,用maximum函数找出最高分的学生的数据。
5,再主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。
输出形式如下:
NO name score1 score2 score3 total average
101 wang 80 79 81 240 80.00 还要求写出流程图 展开
1,根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。
2,用input函数从键盘上输入10个学生的数据。
3,用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩。
4,用maximum函数找出最高分的学生的数据。
5,再主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。
输出形式如下:
NO name score1 score2 score3 total average
101 wang 80 79 81 240 80.00 还要求写出流程图 展开
3个回答
2013-10-19
展开全部
/***************************************************
*程序名称:学生记录系统
*编译环境:borland c++
*程序作者:松;zhuchangsong@126.com
*完成日期:2009-12-23
*程序说明:简单的学生成绩记录系统
********************************///————include头文件————
#include<stdio.h>//————define定义————
#define student_num 10//————命名空间——————
//using namespace std;
typedef struct studentInfo
{
int No;
char name[30];
int score1;
int score2;
int score3;
int total;
double average;
}ps;void input(ps *student,int index){
printf("enter No of student %d:\t",index);
scanf("%d",&(student->No));
printf("enter name of student %d:\t",index);
scanf("%s",&(student->name));
printf("enter score1 of student %d:\t",index);
scanf("%d",&(student->score1));
if((student->score1 > 100) || (student->score1 < 0))
{
printf("error: score must between 0 ~ 100!\n enter score again:");
scanf("%d",&(student->score1));
};
printf("enter score2 of student %d:\t",index);
scanf("%d",&(student->score2));
if((student->score2 > 100) || (student->score2 <0))
{
printf("error: score must between 0 ~ 100!\n enter score again:");
scanf("%d",&(student->score2));
}
printf("enter score3 of student %d:\t",index);
scanf("%d",&(student->score3));
if((student->score3 > 100) || (student->score3 <0))
{
printf("error: score must between 0 ~ 100!\n enter score again:");
scanf("%d",&(student->score3));
}
printf("please enter information of next student:\n");
}double average (ps *student){
double result = (student->score1 + student->score2 + student->score3)/3;
return result;
}int total (ps *student){
int result = (student->score1 + student->score2 + student->score3);
return result;
}
//————main主函数——————
int main( void )
{
int index;
ps student[student_num];
printf("please enter information of %d student:\n",student_num);
for(index = 0; index < student_num; index++){
input(&student[index],index);
student[index].average = average(&student[index]);
student[index].total = total(&student[index]);
}
printf(" No\tname\tscore1\tscore2\tscore3\ttotal\taverage\n");
for(index = 0; index < student_num; index++){
printf("%-5.5d\t%s\t%d\t%d\t%d\t%d\t%.2f\n",student[index].No,student[index].name,student[index].score1,student[index].score2,student[index].score3,student[index].total,student[index].average);
}
return 0;
}
/*
*笔记:
* 1、注意结构体做函数参数时用指针调用,这样可以返回多个值
* 2、注意scanf,printf函数的格式调用
* 3、注意函数的定义、声明和使用方法
*/ 以下是运行结果: **********************************本不想帮你写作业, 不过好久没写过c了,顺便帮你写个玩玩
*程序名称:学生记录系统
*编译环境:borland c++
*程序作者:松;zhuchangsong@126.com
*完成日期:2009-12-23
*程序说明:简单的学生成绩记录系统
********************************///————include头文件————
#include<stdio.h>//————define定义————
#define student_num 10//————命名空间——————
//using namespace std;
typedef struct studentInfo
{
int No;
char name[30];
int score1;
int score2;
int score3;
int total;
double average;
}ps;void input(ps *student,int index){
printf("enter No of student %d:\t",index);
scanf("%d",&(student->No));
printf("enter name of student %d:\t",index);
scanf("%s",&(student->name));
printf("enter score1 of student %d:\t",index);
scanf("%d",&(student->score1));
if((student->score1 > 100) || (student->score1 < 0))
{
printf("error: score must between 0 ~ 100!\n enter score again:");
scanf("%d",&(student->score1));
};
printf("enter score2 of student %d:\t",index);
scanf("%d",&(student->score2));
if((student->score2 > 100) || (student->score2 <0))
{
printf("error: score must between 0 ~ 100!\n enter score again:");
scanf("%d",&(student->score2));
}
printf("enter score3 of student %d:\t",index);
scanf("%d",&(student->score3));
if((student->score3 > 100) || (student->score3 <0))
{
printf("error: score must between 0 ~ 100!\n enter score again:");
scanf("%d",&(student->score3));
}
printf("please enter information of next student:\n");
}double average (ps *student){
double result = (student->score1 + student->score2 + student->score3)/3;
return result;
}int total (ps *student){
int result = (student->score1 + student->score2 + student->score3);
return result;
}
//————main主函数——————
int main( void )
{
int index;
ps student[student_num];
printf("please enter information of %d student:\n",student_num);
for(index = 0; index < student_num; index++){
input(&student[index],index);
student[index].average = average(&student[index]);
student[index].total = total(&student[index]);
}
printf(" No\tname\tscore1\tscore2\tscore3\ttotal\taverage\n");
for(index = 0; index < student_num; index++){
printf("%-5.5d\t%s\t%d\t%d\t%d\t%d\t%.2f\n",student[index].No,student[index].name,student[index].score1,student[index].score2,student[index].score3,student[index].total,student[index].average);
}
return 0;
}
/*
*笔记:
* 1、注意结构体做函数参数时用指针调用,这样可以返回多个值
* 2、注意scanf,printf函数的格式调用
* 3、注意函数的定义、声明和使用方法
*/ 以下是运行结果: **********************************本不想帮你写作业, 不过好久没写过c了,顺便帮你写个玩玩
2013-10-19
展开全部
嘻嘻,人家自己都认为这种东西太简单,只值这几分儿。学生还是自己写作业好!这最基础的东西还是自己先看看书写写看,不动手什么时间也学不会的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-19
展开全部
才给20分 还要求那么多- -!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询