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;
}