當前位置:首頁 » 考試成績 » 已知5個學生4門課成績

已知5個學生4門課成績

發布時間: 2020-12-16 15:07:27

㈠ 5個學生4門課的成績,請求出:(1)每個學生的總分,(2)每門課的平均分;這個用C++該怎麼做啊

#include <iostream>
using namespace std;
struct Student
{
char name[20];//姓名
int EScore;//英語成績
int MScore;//數學成績
int CScore;//語文成績
int PScore;//物理成績
};
int main()
{
int i=0;
Student b[5];
for(i=0;i<5;i++)
{
cout<<"請輸入名字 :";
cin>>b[i].name;
cout<<" "<<"英語成績:";
cin>>b[i].EScore;
cout<<" "<<"數學成績:";
cin>>b[i].MScore;
cout<<"語文成績:"<<" ";
cin>>b[i].CScore;
cout<<"物理成績:";
cin>>b[i].PScore;
cout<<"總成績是:"<<(b[i].EScore+b[i].MScore+b[i].CScore+b[i].PScore)<<endl;
cout<<endl;
}

cout<<"語文平均成績是:"<<(b[0].CScore+b[1].CScore+b[2].CScore+b[3].CScore+b[4].CScore)/5<<endl;
cout<<"數學平均成績是:"<<(b[0].MScore+b[1].MScore+b[2].MScore+b[3].MScore+b[4].MScore)/5<<endl;
cout<<"物理平均成績是:"<<(b[0].PScore+b[2].PScore+b[2].PScore+b[3].PScore+b[4].PScore)/5<<endl;
cout<<"英語平均成績是:"<<(b[i].EScore+b[1].EScore+b[2].EScore+b[3].EScore+b[4].EScore)/5<<endl;

return 0;
}
偶水平比較差。。只能用本辦法做出來、、、、

㈡ 已知5個學生的4門課的成績,要求求出每個學生的平均成績,然後對平均成績從高到低將各學生的成

問題很多
首先
for(j=0;j<4;j++)
sum=sum+a[i][j];
b[i]=sum/4.0;
b[i]賦值要在循環裡面做。
其次
排序 你這樣排出來的結果應該是小到大
再次
printf("%d\n",b[i]);
b[]數組時float型的%d輸出格式也不正確
我改過之後為
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[5][4]={{94,78,87,76},{66,87,75,69},{100,98,89,77},{82,58,72,84},{82,73,67,54}};
int i,j,sum;
float average,b[5],t;
for(i=0;i<5;i++)
{
sum=0;
for(j=0;j<4;j++)
{
sum=sum+a[i][j];
b[i]=sum/4.0;
}
printf("average%d=%4.2f\n",i+1,b[i]);
}
for(j=0;j<4;j++)
for(i=j+1;i<5;i++)
if(b[i]>b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
for(i=0;i<5;i++)
printf("%.2lf\n",b[i]);
system("pause");
return 0;
}
但是這不是最好的方法

㈢ C語言:已知5個學生的4門課的成績,要求求出每個學生的平均成績,然後對平均成績從最高到低將各學生的成績

#include<iostream>
using namespace std;

void main()
{
int i,j,sum,t;
int a[5][5]=,,,,}; //5*5夠用了
printf("\n");
for (i=0;i<5;i++)
{ sum=0;
for(j=0;j<4;j++) //加前4個成績
sum+=a[i][j];
a[i][4]=sum/4;}//平均值除4!存在下標為4的元素內版;
for(int k=0;k<5;k++)// 加了層循環 參看起泡法
for(i=0;i<5-k;i++)
if(a[i][4]<a[i+1][4])//條件權移到循環外了
for(j=0;j<5;j++)

for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%8d",a[i][j]);
printf("\n");}
}

㈣ 用C 語言數組解題 :已知5個學生的4門課的成績,要求求出全部學生的門成績並分別求出每門課的平均成績

#include<stdio.h>
voidmain()
{
inti,j,a[5][4],b[4]={0};
for(i=0;i<4;i++)
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
b[i]+=a[i][j];
}
for(i=0;i<4;i++)
printf("第%d門課程總分專:%d,平均屬分:%.1f ",i+1,b[i],b[i]/5.0);
}

㈤ 已知5個學生的4門課的成績,要求求出每個學生的平均成績,然後對平均成績從高到低將各學生的成績排 序記錄

已知5個學生的門課的成績,要求求出每個學生的平均成績,然後對平均成績從高到低將各學生的成績排序記錄(成績最高的學生的排在數組的最前行,成績最低的學生牌子啊數組的最後面的一行)?

方法一:#include <stdio.h>
void main()
{
float a[5][5],sum=0,t;
int i,j,k;
for(i=0;i<5;i++)
{printf("please input the %d student's scores:",i+1);
for(j=0;j<=3;j++)
{
scanf("%f",&a[i][j]);
}
}
for(i=0;i<5;i++)
for(j=0,a[i][4]=0;j<4;j++)
{ a[i][4]+=a[i][j];
if(j==3) a[i][4]=a[i][4]/4;
}
for(k=0;k<4;k++)
for(i=0;i<5;i++)
if(a[i][4]<a[i+1][4])
for(j=0;j<5;j++)
{t=a[i][j];a[i][j]=a[i+1][j];a[i+1][j]=t;}

for(i=0;i<5;i++)
{
printf("\n");
for(j=0;j<5;j++)
printf("%.2f ",a[i][j]);
}

}

方法二:#include"stdio.h"
void main()
{
float a[5][4],b[5]={0,0,0,0,0},t;
int i,j;
printf("請輸入5個同學4門功課的成績:\n");
for(i=0;i<5;i++)
for(j=0;j<4;j++)
scanf("%f",&a[i][j]);
for(i=0;i<5;i++)
for(j=0;j<4;j++)
b[i]+=a[i][j];
for(j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(b[i]<b[i+1]) {t=b[i];b[i]=b[i+1];b[i+1]=t;}
for(i=0;i<5;i++)
printf("第%d名的平均分數為%.2f\n",i+1,b[i]/4);
}

㈥ 有5個學生,每個學生有4門課成績,從鍵盤輸入以上數據(包含:學號,

#include<stdio.h>

structSTU{

charname[20];
intxuehao;
floatsubject1;
floatsubject2;
floatsubject3;
floatsubject4;
floatave;//平均分
};

voidmain()
{
STUa[5];
FILE*fp;
inti=0;

printf(" 請輸入5個學生學號/姓名及4門課的成績: ");
do
{
printf("--學生%d姓名:",i+1);
setbuf(stdin,NULL);//清除緩存,便於下次gets的輸入.否則將讀取上次鍵盤輸入的東西
gets(a[i].name);//不要輸入中文scanf輸入時不能含有空格
printf(" 學號:");scanf("%d",&a[i].xuehao);
printf(" 4門課的成績(之間英文逗號隔開):");
scanf("%f,%f,%f,%f",&a[i].subject1,&a[i].subject2,&a[i].subject3,&a[i].subject4);
a[i].ave=(a[i].subject1+a[i].subject2+a[i].subject3+a[i].subject4)/4;
}while(++i<5);

fp=fopen("stud.txt","w");
fprintf(fp," -----------------Thestudentscores------------------");
fprintf(fp," 姓名 學號 科目1 科目2 科目3 科目4 平均分");

i=0;
do{
fprintf(fp," %s %d %.2f %.2f %.2f %.2f %.2f",a[i].name,a[i].xuehao,a[i].subject1,a[i].subject2,a[i].subject3,a[i].subject4,a[i].ave);
}while(++i<5);

if(fp!=NULL)fclose(fp);

printf("成績錄入完畢,已存入stud.txt內 ");
}

文件在程序的那個文件夾里,以上是結構體建立數據,下面是用數組來臨時存信息

#include<stdio.h>

voidmain()
{
charname[5][20];
floata[5][6];
FILE*fp;
inti=0;

printf(" 請輸入5個學生學號/姓名及4門課的成績: ");
do
{
printf("--學生%d姓名:",i+1);
setbuf(stdin,NULL);//清除緩存,便於下次gets的輸入.否則將讀取上次鍵盤輸入的東西
gets(name[i]);//不要輸入中文scanf輸入時不能含有空格
printf(" 學號:");
scanf("%f",&a[i][0]);//一般學號只有整數
printf(" 4門課的成績(之間英文逗號隔開):");
scanf("%f,%f,%f,%f",&a[i][1],&a[i][2],&a[i][3],&a[i][4]);
a[i][5]=(a[i][1]+a[i][2]+a[i][3]+a[i][4])/4;
}while(++i<5);

//寫入文件操作
fp=fopen("stud.txt","w");//非追加模式寫入
fprintf(fp," -----------------Thestudentscores------------------");
fprintf(fp," 姓名 學號 科目1 科目2 科目3 科目4 平均分");

i=0;
do{
fprintf(fp," %s %.f %.2f %.2f %.2f %.2f %.2f",name[i],a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5]);
}while(++i<5);

if(fp!=NULL)fclose(fp);//關閉文件

printf("成績錄入完畢,已存入stud.txt內 ");
}

㈦ 已知5名學生的4門課的成績,分別求出每門課的平均值

void main(){
int a[5][4];
int b[4]={0};
for (int i=0;i<5;i++){
printf("第%d個學生的成績:\n",i+1);
scanf("%d,%d,%d,%d",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);
}
for (i=0;i<4;i++){
for (int j=0;j<5;j++)
b[i]+=a[j];
printf("第%d門課的平均專分屬為%4.1f\n",i+1,(float)b[i]/5);
}
}

㈧ c語言題目,已知5個學生4門成績,求出平均成績並且排序

#include<iostream>
using namespace std;

void main()
{
int i,j,sum,t;
int a[5][5]={{78,82,93,74},{91,82,72,76},{67,89,90,65},{77,88,99,89},{78,89,99,76}}; //5*5夠用了
printf("\n");
for (i=0;i<5;i++)
{ sum=0;
for(j=0;j<4;j++) //加前4個成績
sum+=a[i][j];
a[i][4]=sum/4;}//平均值除4!存在下標為4的元素內;
for(int k=0;k<5;k++)// 加了層循環回 參看答起泡法
for(i=0;i<5-k;i++)
if(a[i][4]<a[i+1][4])//條件移到循環外了
for(j=0;j<5;j++)
{t=a[i][j];a[i][j]=a[i+1][j];a[i+1][j]=t;}

for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%8d",a[i][j]);
printf("\n");}
}

㈨ 輸入5個學生的4門課的成績,分別用函數實現下列功能 計算每個學生的平均分 將平均分從高到低排序

#include<algorithm>
usingnamespacestd;

//往stud數組里填充數據;avg數組里為排好的平均回分
intstud[5][4],avg[5];

boolcomp(intx,inty){
returnx>y;
}

//計算答平均分
voidcalcuteAvg(void){
inttot;
for(inti=0;i<5;i++){
tot=0;
for(intj=0;j<4;j++)tot+=stud[i][j];
avg[i]=tot/4;
}
sort(avg,avg+5,comp);
}

㈩ 輸入5個學生4門課程的成績,之後計算:每個學生總分,每門課程平均分;輸出總分最高的學生的姓名和總成績

#include<stdio.h>
void mian()
{
int stu[5][4],i,j,t[5];
float sum=0,a[4],b[4],temp,t;
char name[5]
for(i=0;i<5;i++)
scanf("%c",&name[i]);
for(i=0;i<5;i++)
for(j=0;j<4;j++)
scanf("%d",&stu[i][j]);
for(i=0;i<5;i++)
{t[i]=0;
for(j=0,j<4;j++)
{sum=sum+stu[i][j];
t[i]=t[i]+stu[i][j];/每個學生的總分
}
for(j=0;j<4;j++)
for(i=0;i<5;i++)
a[j]=stu[i][j];
b[j]=a[j]/4.0;/ 每門課程平均分
temp=t[0];
t=0;
for(i=1;i<5;i++)
if(temp<t[i]){
temp=t[i];
t=i;
}
printf("%c",name[i]);/輸出總分最高的學生的姓名
printf("%-5.2d",temp);/和總成績
}
寫得很累很困,你20分太少了點吧

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919