重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
成都创新互联公司是一家专业提供福鼎企业网站建设,专注与网站设计制作、网站制作、H5场景定制、小程序制作等业务。10年已为福鼎众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
struct STUDENT{
double score[3];
double average;
int id;
char name[255];
};
void printScore(struct STUDENT *);
int main()
{
struct STUDENT stu[10];
int i;
for(i=0;i10;++i)
{
printf("请输入姓名:");
scanf("%s",stu[i].name);
printf("Please input the ID:");
scanf("%d",stu[i].id);
printf("输入三门成绩,空格分隔");
scanf("%lf%lf%lf",stu[i].score[0],stu[i].score[1],stu[i].score[2]);
stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
}
return 0;
}
void printScore(struct STUDENT *stu)
{
double average=0,sum=0;
int i,j,maxId=0;
for(j=0;j3;++j)
{
for(i=0;i10;++i)
{
sum+=stu[i].score[j];
if(stu[i].score[j]stu[maxId].score[j]) maxId=i;
}
average=sum/10;
printf("The average score of Class %d is:%lf",j,average);
printf("The student who have max score of Class 1 is:\n");
printf("%s %d %lf %lf %lf %lf\n",stu[maxId].name,stu[maxId].id,stu[maxId].score[0],stu[maxId].score[1],stu[maxId].score[2],stu[maxId].average);
sum=0;
average=0;
maxId=0;
}
}
我是按照三门课各输出一次平均成绩来写的,望采纳
#include stdio.h
void fun(int n)
{
switch(n/10)
{
case 1:
case 2:
case 3:
case 4:
case 5:printf("成绩不及格\n");break;
case 6:printf("成绩为D等\n");break;
case 7:printf("成绩为C等\n");break;
case 8:printf("成绩为B等\n");break;
case 9:
case 10:printf("成绩为A等\n");break;
}
}
void main()
{
int n;
scanf("%d",n);
fun(n);
}
#includestdio.h
#includestdlib.h
//定义一个学生结构体数组
struct Student{
int id;
double score;
}Student[100];
//记录实际导入学生个数
int len = 0;
//求最高分
void getmax() {
int maxid = 0;
double maxscore = -1;
for (int i = 0; i len; i++) {
if (Student[i].score maxscore) {
maxscore = Student[i].score;
maxid = Student[i].id;
}
}
printf("班级最高分为:%.2lf学号是:%d\n", maxscore, maxid);
}
//求最低分
void getmin() {
int minid = 0;
double minscore = 101;
for (int i = 0; i len; i++) {
if (Student[i].score minscore) {
minscore = Student[i].score;
minid = Student[i].id;
}
}
printf("班级最低分为:%.2lf学号是:%d\n", minscore, minid);
}
//求总分
double getsum() {
double sum = 0;
for (int i = 0; i len; i++) {
sum += Student[i].score;
}
return sum;
}
//求平均分
double getave() {
double ave = 0;
return getsum() / len;
}
//导入学生信息
void input() {
int id = 0;
double score = 0;
while (1) {
printf("请输入学生学号:");
scanf_s("%d", id);
if (id == -1) { break; }
printf("请输入学生成绩:");
scanf_s("%lf", score);
Student[len].id = id;
Student[len].score = score;
len++;
}
printf("信息导入完毕!\n");
}
int main() {
input();
printf("全班总分为:%.2lf\n", getsum());
printf("全班平均分为:%.2lf\n", getave());
getmax();
getmin();
return 0;
}
注:此代码运行于VS2017,如果在VC6.0中运行,可将scanf_s改成scanf
并且for(int i=0;ilen;i++){xxx}改成int i=0;for(i=0;ilen;i++){xxx}即可正常运行
程序运行测试图如下:
#include stdio.h
struct Sudent
{
char num[6]; //改类型
char name[8];
char score[4];
}stu[5];
// print 定义可以放前面
void print( struct Sudent stu[],int count) //加上函数类型,参数类型声明
// struct student stu[6];//这句不要
{
int i,j; //增加
for(i = 0;i count;i++) //增加
{
printf("%s%s",stu[i].num,stu[i].name/*,stu[i].score*/);//
for(j=0;j3;j++)
printf("%d",stu[i].score[j]);
printf("\n");
}
}
//
void main()
{
int i,j;
//char stu[5]; //已经声明stu为全局结构体数组了,这句不要
// char print(char stu); //
for(i=0;i5;i++)
{
scanf("%s",stu[i].num);
scanf("%s",stu[i].name);
for(j=0;j3;j++)
scanf("%d",stu[i].score[j]);
}
print(stu,5);
}