问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

用c语言设计一个程序统计一个班的学生成绩

发布网友 发布时间:2022-05-14 16:22

我来回答

3个回答

热心网友 时间:2023-08-20 04:28

改好了,问题不大,我都写在注释里了:

#include<stdio.h>
#include<math.h>
#define N 35
#define COURSE 4

struct student
{
char num[10];/*如果把num当作字符串的话,不能用int,而是char数组。不然就用int num;*/
float score[4];
float sum;
float aver;
}
stu[N];

void main()
{
void Input(struct student stu[]);
void count(struct student stu[]);
void sort(struct student stu[]);
void find(struct student stu[]);
sqrt(1.0);/*不知你用什么编译器,如果TC的话,有个BUG。就是结构体里有float型的话,要加这句,不然会报错*/
Input(stu);
count(stu);
find(stu);
/*为什么你的程序里没有执行着几个函数咧?*/

}
void Input(struct student stu[])
{
int i,j;
printf("Enter No.and score as :score1 score2 score3 score4\n");
for (i=0;i<N;i++)
{
scanf("%s",stu[i].num);/*用%s输入字符串*/
for (j=0;j<COURSE;j++)
{
scanf("%f",&stu[i].score[j]);
}
}

}

void count(struct student stu[])
{
float sum,aver;
int i,j;
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<5;j++)
sum+=stu[i].score[j];
aver=sum/4;
stu[i].sum=sum;
stu[i].aver=aver;
}

}

void sort(struct student stu[])
{
int i,j,k;
struct student temp;
for(i=0;i<N;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(stu[k].sum<stu[j].sum)k=j;
if(k!=i)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("number score1 score2 score3 score4 sum average \n");
for(i=0;i<N;i++)
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
/*输出学号也用%s*/
}

void find(struct student stu[])
{
int flag=0;
int i,j;
sort(stu) /*;//stu[];)*/

printf("the student of one score>=90 and 前五名:\n");
/*这两句调换一下位置,不然输出不太好*/

for(i=0;i<5;i++)
{
int sum=0;
for(j=0;j<4;j++)
if(stu[i].score[j]>=90 )sum++;
if(sum)
{
flag=1;
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
}
if(flag==0)
printf(" not exist!\n");
/*这个判断放在循环体之外,不然会输出好多" not exist!"*/

}

另外,注意:
1.个班的学生成绩最多35人。你的咋是固定35人捏?
2.第四点要求:根据用户要求输入课程号显示该门课程成绩在90以上且总分在前五的学生的 学号和各科成绩,平均分和总分

你似乎没有看清题意吧?是要用户输入课程号耶。

这些你自己应该知道怎么做吧?

热心网友 时间:2023-08-20 04:29

要求输入10个学生5门功课的成绩,分别用子函数求出:(1)每个学生的平均分;(2)每门功课的平均分;(3)找出最高分所对应的学生和功课。
#include<stdio.h>
#include<stdlib.h>
struct student
{
 double score[5];
}s[10];
void avg()

 printf("\n");
 double sum;
 for(int i=0;i<10;i++)
    { 
   sum=0;
   printf("第%d位学生的平均分数是: ",i+1);
   for(int j=0;j<5;j++) 
     sum+=s[i].score[j];
   printf("%.2lf\n",sum/5);
  }
  printf("\n");
  return ;
}
void tavg()
{
 printf("\n");
 double sum;
 for(int j=0;j<5;j++)
 {
  sum=0;
  for(int i=0;i<10;i++)
   sum+=s[i].score[j];
   printf("第%d门功课的平均分是: %.2lf\n",j+1,sum/10); 
 }
 return ;
}
void maxsc()
{
 printf("\n");
 double max=-1;
 int i,j;
 for( i=0;i<10;i++)
  {
   for( j=0;j<5;j++)
     if(max<s[i].score[j]) 
     {
     max=s[i].score[j];
    }
  }
  printf("最高分是:%.2lf分,对应学生与功课如下:\n",max);
  for(i=0;i<10;i++)
  {
   for(int j=0;j<5;j++)
      if(max==s[i].score[j])
      {
     printf("第%d位学生的第%d门成绩\n",i+1,j+1);
    }
  } 
  printf("\n"); 

int main()
{
 int i,j;
 for(i=0;i<10;i++)
 {  
  for(j=0;j<5;j++) 
    {
    printf("输入第%d位学生的第%d门功课的成绩: ",i+1,j+1);
    scanf("%lf",&s[i].score[j]);
    printf("\n");
    }
    printf("\n");
 
 }
 printf("学生平均分数情况:\n"); 
   avg();         //每个学生的平均分 
   printf("功课平均分数情况:\n"); 
   tavg();        //每门功课的平均分
   printf("最高分数即对应学生功课:\n"); 
 maxsc();        //最高分对应的学生和功课 
   system("PAUSE");
   return 0;
}

热心网友 时间:2023-08-20 04:30

改好了,问题不大,我都写在注释里了:
#include<stdio.h>
#include<math.h>
#define
N
35
#define
COURSE
4
struct
student
{
char
num[10];/*如果把num当作字符串的话,不能用int,而是char数组。不然就用int
num;*/
float
score[4];
float
sum;
float
aver;
}
stu[N];
void
main()
{
void
Input(struct
student
stu[]);
void
count(struct
student
stu[]);
void
sort(struct
student
stu[]);
void
find(struct
student
stu[]);
sqrt(1.0);/*不知你用什么编译器,如果TC的话,有个BUG。就是结构体里有float型的话,要加这句,不然会报错*/
Input(stu);
count(stu);
find(stu);
/*为什么你的程序里没有执行着几个函数咧?*/
}
void
Input(struct
student
stu[])
{
int
i,j;
printf("Enter
No.and
score
as
:score1
score2
score3
score4\n");
for
(i=0;i<N;i++)
{
scanf("%s",stu[i].num);/*用%s输入字符串*/
for
(j=0;j<COURSE;j++)
{
scanf("%f",&stu[i].score[j]);
}
}
}
void
count(struct
student
stu[])
{
float
sum,aver;
int
i,j;
for(i=0;i<N;i++)
{
sum=0;
for(j=0;j<5;j++)
sum+=stu[i].score[j];
aver=sum/4;
stu[i].sum=sum;
stu[i].aver=aver;
}
}
void
sort(struct
student
stu[])
{
int
i,j,k;
struct
student
temp;
for(i=0;i<N;i++)
{
k=i;
for(j=i+1;j<N;j++)
if(stu[k].sum<stu[j].sum)k=j;
if(k!=i)
{
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
printf("number
score1
score2
score3
score4
sum
average
\n");
for(i=0;i<N;i++)
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
/*输出学号也用%s*/
}
void
find(struct
student
stu[])
{
int
flag=0;
int
i,j;
sort(stu)
/*;//stu[];)*/
printf("the
student
of
one
score>=90
and
前五名:\n");
/*这两句调换一下位置,不然输出不太好*/
for(i=0;i<5;i++)
{
int
sum=0;
for(j=0;j<4;j++)
if(stu[i].score[j]>=90
)sum++;
if(sum)
{
flag=1;
printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
}
if(flag==0)
printf("
not
exist!\n");
/*这个判断放在循环体之外,不然会输出好多"
not
exist!"*/
}
另外,注意:
1.个班的学生成绩最多35人。你的咋是固定35人捏?
2.第四点要求:根据用户要求输入课程号显示该门课程成绩在90以上且总分在前五的学生的
学号和各科成绩,平均分和总分
你似乎没有看清题意吧?是要用户输入课程号耶。
这些你自己应该知道怎么做吧?
用c语言设计一个程序统计一个班的学生成绩?

scanf_s("%d", &amp;id);if (id == -1) { break; } printf("请输入学生成绩:");scanf_s("%lf", &amp;score);Student[len].id = id;Student[len].score = score;len++;} printf("信息导入完毕!\n");} int main() { input();printf("全班总分为:%.2lf\n", getsum());printf("...

如何用c语言统计学生成绩

要用C语言统计学生成绩,你可以使用一个数组来存储学生成绩,然后使用循环遍历数组来进行统计。下面是一个示例代码:include &lt;stdio.h&gt; int main() { ;printf("请输入学生人数:");scanf("%d", &amp;num);int scores[num];int sum = 0;int = 0;int min = 100;printf("请输入%d个学生成绩:\n...

c#如何统计一个班的平均成绩?

1、首先打开visual studio 2019软件,新建一个win32控制台程序。2、然后在源文件夹下面新建一个C语言文件。3、接着在C语言中导入stdio和stdlib库。4、然后在main函数中输入如下图所示的逻辑代码。5、运行程序以后就可以看到CMD界面,这里需要输入10个成绩。6、最后输完第10个成绩的时候,回车就可以得到...

编写一个C语言程序,统计一个班(最多50人)的学生成绩,要求实现以下功能...

if(fwrite(&amp;stu[i],sizeof(struct student),1,fp)!=1)printf("file write error\n");fclose(fp);}

用C语言求一个班的平均成绩,但是这个班人数未知,怎么写这个程序呀?大神...

C语言程序源代码。输入一个班全体学生的成绩,把不及格的学生成绩输出,并求几个学生的平均成绩。(这个或许对你有帮助)include&lt;stdio.h&gt; define N 4 //宏定义,初始化班级学生人数,可通过修改N的初值改变 int main(){ int a[N],b[N]={0},i=0,j=0,sum=0;float ave=0.0;printf("...

编程如何用C语言编写一个学生成绩管理系统程序

/*当输入的学号已经存在,程序报错,返回前面重新输入*/ } } } }printf("请输入学生姓名:"); scanf("%s",&amp;p1-&gt;name);/*输入学生姓名*/ printf("请输入cj1(0~100):"); scanf("%f",&amp;p1-&gt;cj1);/*输入cj1,成绩应在0-100*/ while(p1-&gt;cj1&lt;0||p1-&gt;cj1&gt;100){ getchar(); printf("输入错...

C语言程序,请你编写一个程序计算每个学生的平均成绩

float a[10][10];//用来存放10名学生的5门成绩,最后一位用于存放平均成绩 int i,j;float sum=0.0;for(i=0;i&lt;10;i++){ printf("请输入第%d个学生的5门成绩",i+1);for(j=0;j&lt;5;j++){ scanf("%f",&amp;a[j]);sum=sum+a[j];} a[10]=sum/5.0;} printf("10名学生的成绩...

C语言程序设计 班级学生成绩管理系统

C语言程序设计班级学生成绩管理系统解决时间:2009-6-2609:50基本要求1.初始化成绩表:将原成绩表的信息清空;2.显示班级学生成绩信息:按要求显示全部或特定学生成绩信息;3.插入学生... C语言程序设计 班级学生成绩管理系统解决时间:2009-6-26 09:50基本要求1. 初始化成绩表:将原成绩表的信息清空;2. 显示班级学生...

C语言编程:学生成绩管理系统设计 学生成绩信息包括:学号,姓名,语文成绩...

#define MAXN 100 //一个班最多的人数#define MAXM 10 //最多课程门数char subject[MAXM][12]; //保存所有课程名称char number[MAXN][10]; //保存全班学号char name[MAXN][20]; //保存全班姓名float score[MAXN][MAXM]; //保存全班所有课程成绩float sum[MAXN]; //保存全班总成绩int n,m...

C语言:计算全班平均成绩,及统计各分数段人数的程序问题

else { if(num&gt;=60 &amp;&amp; num&lt;70) c67=c67+1; else c6=c6+1; } } } scanf("%d",&amp;num); } avg=sum/count; printf("全班平均成绩为:%f\n",avg); printf("90分以上的(包括90分)的人数是:%d\n",c9)...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
网线插座如何安装方法 无须的近义词和反义词是什么_无须是什么意思? PPT文件视图有几个? 求助很急,这个系列的图片叫什么 这个系列的韩国插画叫什么? 这种是什么类型的插画? 这个系列的图片,叫什么? 仙侠奇缘之花千骨广播剧 发到 852436014@qq.com 谢了~~ 斗罗大陆四大女主的辈分 吕薇个人荣誉 设计一个统计班级学生成绩的c语言程序 C语言编程,从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值,怎么操作? C语言程序设计统计学生成绩 为什么emmo突然不能看视频 用c语言编写:从键盘输入若干个学生的成绩统计并输出最高成绩和最低成绩当输入负数时结束输入。 EMMO记账安卓可以用吗 哺乳期的宝宝吃什么可以提高免疫力? 哺乳期吃什么宝宝长得高 哺乳期宝宝醉奶的表现 哺乳期的宝宝大概多久的哺乳时间 哺乳期有宝宝了怎么办 ps4游戏能用银联信用卡购买么 信用卡3000额度午夜消费充值游戏6000可能吗 人心弱点有哪些? 人心怕碎海怕伤是什么意思? 伤什么不能伤人心。 人心不能玩弄 缘分不能挥霍的文章是什么意思 害人之心不可有,防人之心不可无,万丈深沟终有底,唯有人心不可测。请问是什么意思??? 人心,一旦被伤透了,就再也不会被伤到了 伤了爱自己的人心会痛吗? c语言程序设计 写一个统计学生成绩的程序 一定按要求 重谢~! 用C语言编写一程序,统计N个学生的成绩信息。 C语言编程问题 成绩统计 C语言编程:输入一组学生的成绩,统计并输出大于平均分的学生人数。 c语言:编程实现:键盘输入一组学生成绩,输入以-1作为输入的结束。统计这些数据的max,min,average。 C语言编程 题目:输入30个学生成绩,求最高分,最低分和平均分(用数组存放数据) 广州市包含多少个区? 广州有什么区? 广州有多少个区,它们哪个离东莞近? 有没有可下载的汉语翻译哈萨克语的翻译器 充电器正负极2根线直接接在电瓶上能否充电?求高手指教 如果一个女人变心了会有什么表现和变化呢? 这是哈萨克语吗?懂的翻译一下,谢谢 孩子告诉你小秘密后,你该怎么做? 自从告诉朋友我的秘密后就感觉朋友在慢慢疏远我? 庆余年:知肖恩秘密后,范闲为何能猜出言冰云身份? 删除秘密后手机里面全部的文件会消失吗 令狐冲当时发现思过崖秘密后,为啥没有告诉师父岳不群? 和朋友倾诉完自己的秘密后立刻有点懊悔是什么体验? 定密责任人审核批准国家秘密后,应当做出什么指示
  • 焦点

最新推荐

猜你喜欢

热门推荐