已知5个学生4门课成绩
㈠ 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分太少了点吧