永发信息网

C程序问题(数组)

答案:1  悬赏:50  手机版
解决时间 2021-04-11 15:43

有n>=10个学生,m>=3门课程,

1,找出各课成绩的最大值和学号,

2,找出不结格课程的学生号和课程号。

3,求出全部学生全部课程的平均分。

4,写出个人心得各见解

最佳答案


//有n>=10个学生,m>=3门课程,


//1,找出各课成绩的最大值和学号,


//2,找出不结格课程的学生号和课程号。


//3,求出全部学生全部课程的平均分。


//4,写出个人心得各见解


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define MAXSIZE 100



int i;
static count = 0; //记录插入的条数
struct score
{
char number[10]; //学号
float math; //各科成绩
float english;
float history;
}stu[MAXSIZE];


//建立信息表
void create()
{
int judge; //judge用来判断是否还要输入信息
i = 0; //这里i用作数组的下标
loop:
printf( "输入第%d个学生的信息\n", i+1 );
printf( "输入学号:");
scanf( "%s", stu[i].number );
while( strlen(stu[i].number) >= 10 )
{
printf( "超出范围\n");
scanf( "%s", stu[i].number );
}


printf( "数学成绩:");
scanf( "%f", &stu[i].math );
while( stu[i].math < 0 || stu[i].math >100 )
{
printf( "超出范围\n");
scanf( "%f", &stu[i].math );
}


printf( "英语成绩:");
scanf( "%f", &stu[i].english );
while( stu[i].english < 0 || stu[i].english >100 )
{
printf( "超出范围\n");
scanf( "%f", &stu[i].english );
}


printf( "历史成绩:");
scanf( "%f", &stu[i].history );
while( stu[i].history < 0 || stu[i].history >100 )
{
printf( "超出范围\n");
scanf( "%f", &stu[i].history );
}
count++;
printf( "是否还要输入信息(是(1)否(0)):");
scanf( "%d", &judge );
if( judge == 1 )
{
i++;
goto loop;
}
printf( "\n信息插入成功!!!一共插入了%d条记录\n", count );
}


void maxscore()
{
int m,e,h; //记录各科成绩最大值的下标
float maxm,maxe,maxh;
m = e = h = 0;
maxm = maxe = maxh = 0;
for( i = 0 ; i < count; i++ )
{
if( maxm < stu[i].math )
{
maxm = stu[i].math;
m = i;
}
if( maxe < stu[i].english )
{
maxe = stu[i].english;
e = i;
}
if( maxh < stu[i].history )
{
maxh = stu[i].history;
h = i;
}


}
printf("查找成功\n");
printf( "学号:%s 数学成绩最高分:%2.2f\n", stu[m].number, stu[m].math);
printf( "学号:%s 英语成绩最高分:%2.2f\n", stu[e].number, stu[e].english);
printf( "学号:%s 历史成绩最高分:%2.2f\n", stu[h].number, stu[h].history);
}



void failedscore()
{
int j;
for( j = 0; j < count; j++ )
{
if( stu[j].math < 60 || stu[j].english < 60 || stu[j].history < 60 )
{
printf( "学号:%s\t数学成绩%2.2f\t英语成绩%2.2f\t历史成绩:%2.2f\n",
stu[j].number, stu[j].math, stu[j].english, stu[j].history );
}
}
}


void avg()
{
int j;
float sum;
sum = 0;
for( j = 0; j < count; j++ )
{
sum += stu[j].math + stu[j].english + stu[j].history;
}
printf( "全部学生全部课程总分为:%2.2f\n", sum );
printf( "一共有%d条学生记录,全部学生全部课程的平均分(sum/(count*3))为:%2.2f\n", count, sum/(count*3) );
}
void menu()
{
printf( "\t\t***********************************************\n");
printf( "\t\t* 1、建立信息表 *\n");
printf( "\t\t* 2、各课成绩的最大值和学号 *\n");
printf( "\t\t* 3、不及格课程的学生号,课程号 *\n");
printf( "\t\t* 4、全部学生全部课程的平均分 *\n");
printf( "\t\t* 5、清屏 *\n");
printf( "\t\t* 6、退出 *\n");
printf( "\t\t***********************************************\n");
}


int main( void )
{
int select;
loop:
menu();
printf( "请选择操作(提前必须建立信息表):");
scanf( "%d", &select);
switch( select )
{
case 1: create();
break;
case 2: maxscore();
break;
case 3:failedscore();
break;
case 4: avg();
break;
case 5: system( "cls" );
break;
case 6: exit(0);
break;
default:printf( "选择出错\n");
break;
}
goto loop;
return 0;
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
这该怎么办、。
怎样写门面出租合同,怎样写商铺出租合同
静乐县公安局森林派出所在哪里啊,我有事要去
品胜电霸五代和彩豆哪个好
现有两个容积相同的甲、乙圆柱形容器,里面都
谜语:山东发展快(名人 词字2)
你好,拍拍什么用
一本小说,女主穿到自己看的小说里成为女配是
求3dsMaxDesign2009的序列号和注册机。
狗狗生病了。
香村杂面条地址在什么地方,想过去办事
爱情和幸福有关系吗?
茶叶因生长环境的差异而带有不同的味道,一些
测试什么时候找到对象,有没有人给相亲对象做
一道关于同角三角比的关系的题目
推荐资讯
河智苑用韩语怎么写?
求内测资格,能给我一个游戏人生的内测资格吗
顺鑫汽配地址在哪,我要去那里办事
自由幻想怎么升级快?他们说的买桃子怎么买
今年的服饰最流行什么款式
浩成包子铺我想知道这个在什么地方
绿色征途新手卡去哪里领?
电视机多雪花,后来我在天线的断口再接一次又
我不爱的人以死威胁我和他在一起,怎么办?
谁有Wap网站的自动登录与自动注册的程序或代
天行有常,不为尧存,不为桀亡。应之以治则吉
Living in the central American desert has
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?