当前位置:首页 » 编程语言 » 循环输入五门课程c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

循环输入五门课程c语言

发布时间: 2023-08-14 00:43:53

1. C语言循环输入一个学生5门课程的成绩,计算所有大于60分课程成绩的平均分,为什么我的结果平均分永远为0

统计大于60分课程的总成绩和课程数即可求得平均分

没有看懂你的for循环意义何在

另外如果c和j 都是整型数,那么c/j 默认也为整型数,若不能除尽则会损失精度

所以求平均分d=c/j 时要先进行类型转换:d=(float)c/j; 或 d=1.0*c/j

修改后的代码如下:

#include <stdio.h>

int main() {

int a, b = 0, c = 0;

float d;

int i = 1, j = 0;

while (i <= 5) {

printf("请输入第%d门成绩: ", i);

scanf("%d", &a);

i++;

b += a; // 统计所有课程的总分

if (a > 60) {

c += a; // 统计大于60分课程的总分

j++; // 统计大于60分的课程数

}

}

d = (float)c / j; // 求平均分,注意类型转换

printf("该学生的总分为%d ", b);

printf("所有大于60分课程成绩的平均分为%.2f", d);

return 0;

}

符合题意,望采纳~

2. 请用C语言编写如下程序:有一个班的4个学生,有5门课

#include"stdio.h"
structstudent
{
charcord[10];
doublecj[5];
doubleav;
intjg;
};
doubleinput(student*st)
{
inti,j;
doubles,s1;
s1=0;
for(i=0;i<4;i++)
{
s=0;
printf("输入第%d名学生的学号和5门成绩:",i+1);
scanf("%s",st[i].cord);
for(j=0;j<5;j++)
{
scanf("%lf",&st[i].cj[j]);
s+=st[i].cj[j];
if(j==0)
s1+=st[i].cj[j];
}
st[i].av=s/5;
}
printf(" ");
returns1;
}
voidjg2(student*st)
{
inti,j,k;
for(i=0;i<4;i++)
{
st[i].jg=0;
for(j=0;j<5;j++)
{
if(st[i].cj[j]>=60)
st[i].jg+=1;
}
if(st[i].jg<3)
{
printf("%10s:",st[i].cord);
for(k=0;k<5;k++)
{
printf("%3.0lf",st[i].cj[k]);
}
printf("%3.2lf ",st[i].av);
}
}
printf(" ");
}
voidgf(student*st)
{
inti,j,k,m;
for(i=0;i<4;i++)
{
if(st[i].av>=90)
{
m=0;

}
else
{
for(j=0;j<5;j++)
{
if(st[i].cj[j]<85)
{
m=1;
break;
}
else
{
m=0;
}
}
}
if(m==0)
{
printf("%10s:",st[i].cord);
for(k=0;k<5;k++)
{
printf("%3.0lf",st[i].cj[k]);
}
printf("%3.2lf ",st[i].av);
}
}
printf(" ");
}
intmain()
{
doubleav1;
structstudentst1[4];
av1=input(st1)/4;
printf("第一门课的平均分:%lf ",av1);
printf("两门不及格: ");
jg2(st1);
printf("平均成绩在90分以上或全部成绩在85分以上的学生: ");
gf(st1);
}

3. C语言 循环输入张三同学s1结业考试的5门课成绩,并计算平均分,

#include<stdio.h>
intmain()
{
inti;
floata[5],sum=0;
printf("请输入张三五门课成绩: ");
for(i=0;i<5;i++)
{
scanf("%f",&a[i]);
sum+=a[i];
}
printf("平均分:%f",sum/5);
return0;
}

代码如上,正确请采纳

4. C语言编程:从键盘上输入某个学生的5门课程成绩,求其成绩、平均成绩和总成绩除5的余数 (设单科成绩

intmain()
{
intscore[5],sum=0;
printf("请输入成绩:");
for(inti=0;i<5;i++)
scanf("%d%d%d%d%d",score+i);

for(inti=0;i<5;i++)
sum+=score[i];
printf("该学生成绩为:%d",sum);
printf("该学生平均成绩为:%.2f",sum/5.0);
//printf("该学生平均成绩为:%d",sum/5);
printf("该学生总成绩余数为:%d",sum%5);

return0;
}

5. 求C语言编写程序,输入学生五门课程的成绩,计算并输出总成绩和平均数

代码如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
float score,total=0,ave;
for(int i=0;i<5;i++)
{
printf("请输入第%d门成绩:",i+1);
scanf("%f",&score);
total+=score;
}
ave=total/5;
printf("该生的总分为:%f\n",total);
printf("该生的平均分为:%f\n",ave);
system("pause");
return 0;
}

6. 如何用C语言输出10个学生5门功课的平均成绩,每科平均成绩,然后输出最好成绩对应的学生

循环输入50个成绩,输入同时判断最大成绩所在的学生序列(这样直接就找到最好成绩对应的学生)。嵌套循环计算每科平均成绩(注意整型整除浮点数问题)。

下面是代码,我用随机数代替输入,你想手动输入自己改成scanf。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

int sum=0,inxS,max=0,i,j,stus[10][5]={0};

float avg;

srand(time(NULL));

for(i=0;i<10;i++,printf(" "))//输入每个学生的成绩,这里我用随机数代替输入

for(j=0;j<5;j++)

{

stus[i][j]=rand()%101;

printf("%d ",stus[i][j]);//0~100 随机数

if(max<stus[i][j])

max=stus[i][j],inxS=i+1;

}

printf(" 每科平均成绩:");

for(j=0;j<5;j++)

{

sum=0;

for(i=0;i<10;i++)

sum+=stus[i][j];

avg=sum*1.0/10;

printf("%.1f ",avg);

}

printf(" 最好成绩对应是第%d个学生 ",inxS);

return 0;

}