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