c语言二维数组求学生成绩
⑴ c语言二维数组:创建一个二维数组,从键盘输入5个学生的4门成绩,
#include<stdio.h>
#include<stdlib.h>
#define A 5
#define B 4
int main(void)
{
int a[A][B],zcj[A],i,j,sum,t;
double ave;
for(i=0;i<A;i++)
{
("请输入第%d个学生的第4门成绩:",i+1);
for(j=0;j<B;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<A;i++)
{
sum=0;
printf("%d:",i+1);
for(j=0;j<B;j++)
{
sum+=a[i][j];
printf("%d\t",a[i][j]);
}
ave=sum*1.0/B;
zcj[i]=sum;
printf("总成绩是%d、平均分是%.2f\n",sum,ave);
}
for(i=0;i<A-1;i++)
{
for(j=0;j<A-i-1;j++)
{
if(zcj[j]>zcj[j+1])
{
t=zcj[j];
zcj[j]=zcj[j+1];
zcj[j+1]=t;
}
}
}
printf("总成绩从小到大输出:\n");
for(i=0;i<A;i++)
printf("%d ",zcj[i]);
system("pause");
return 0;
}
⑵ C语言二维数组统计学生成绩题谁会
int student_grade[30][3];
void func( int **p_student_grade )
{
int student_total[30];
int student_average[30];
int course_total[3];
int course_average[3];
int max_total = 0;
int i=0;
for( i=0; i<30; i++ )
{
student_total[i] = p_student_grade[i][0] + p_student_grade[i][1] + p_student_grade[i][2];
student_average[i] = student_total[i]/3;
course_total[0] += p_student_grade[i][0];
course_total[1] += p_student_grade[i][1];
course_total[2] += p_student_grade[i][2];
if(student_total[i]>max_total)
max_total = student_total[i];
}
course_average[0] = course_total[0]/30;
course_average[1] = course_total[1]/30;
course_average[2] = course_tatal[2]/30;
}
⑶ c语言,二维数组求期评成绩用二维数组设计程序,实现计算一门课程的期评成绩
按照你要求,用二维数组编写。
#include<stdio.h>#include<string.h>intmain(){charstu[4][100],stuName[5][5]={"小明","小王","小陈","小李","小丽"},score[4],maxName[4][5];//成绩最多输入3位数999inti,j,num,sum,ave[4],maxScore[4]={0,0,0,0};for(i=0;i<4;i++){stu[i][0]=0;sum=0;printf("请输入学科%d各个学生的成绩: ",i+1);for(j=0;j<5;j++){printf("%15s的成绩:",stuName[j]);scanf("%d",&num);sprintf(score,"%d",num);if(maxScore[i]<num)//记录每科最高成绩的人{maxScore[i]=num;strcpy(maxName[i],stuName[j]);}sum=sum+num;//记录每科总分strcat(stu[i],stuName[j]);//拼接成绩单strcat(stu[i],":");strcat(stu[i],score);strcat(stu[i],";");}ave[i]=sum/5;//记录每科平均分}for(i=0;i<4;i++){printf("学科%d的最高分为%s:%d,平均分为%d。 所有学生成绩单为:%s。 ",i+1,maxName[i],maxScore[i],ave[i],stu[i]);}return0;}
⑷ C语言中用二维数组统计学生成绩,还要求每科平均成绩,每个人的平均成绩。还想输入学号。求修改,补充
#include <stdio.h>
//不知道你有没有学动态数组,所以写成宏定义改起来方便
#define N 100 //人数
#define SUB 3 //科目
int main()
{
int stu;
int i;
int j;
float sum = 0.0;
char num[N][10] ;
float s_sum[SUB] = {0};
float score[N][SUB] = {{0}};
printf("输入学生个数:");
scanf("%d",&stu);
printf("输入学生学号:\n");
for(i = 0;i < stu;i++)
{
scanf("%s",&num[i]);
}
printf("输入分数:\n");
for(i = 0; i < stu; i++)
{
printf("学号%s学生的各科分数:\n",num[i]);
for(j = 0; j<SUB; j++) //存各科分数
{
scanf("%f",&score[i][j]);
}
}
for(i = 0; i < stu; i++)
{
for(j = 0; j < SUB; j++)
{
sum +=score[i][j];
}
printf("学号%s学生的平均分:%f\n",num[i],sum/(float)SUB);
sum = 0;
}
for(j = 0 ;j < SUB; j++)
{
for(i = 0;i < stu; i++)
{
s_sum[j]+=score[i][j];
}
printf("第%d学科的学生平均分:%f\n",j,s_sum[j]/stu);
}
return 0;
}
有问题hi我,我加你好友了,共同切磋啊。
⑸ C语言 用二维数组存储学生成绩 试以此数据结构为基础 已知成绩表 学号 返回该生成绩表;输出学生学号成绩
比较简单的写法如下
#include<stdio.h>
int*searchStudent(int(*pStuList)[5],intn,
intstuID)
{
inti;
for(i=0;i<n;i++)
if(stuID==pStuList[i][0])returnpStuList[i];
returnNULL;
}
voidoutputGrade(int*pStu)
{
if(pStu)
printf("number=%d,score=%d%d%d%d ",pStu[0],pStu[1],pStu[2],pStu[3],pStu[4]);
}
intmain()
{
intstu[][5]={
{1111,1,1,1,1},
{2222,2,2,2,2},
{3333,3,3,3,3},
{4444,4,4,4,4},
{5555,5,5,5,5}
};
int*p=NULL;
intnumber;
scanf("%d",&number);
p=searchStudent(stu,5,number);
if(p)
outputGrade(p);
elseprintf("nostudentnumber%dfound ",number);
return0;
}
⑹ C语言 数组,求学生成绩平均分。急!!!!
#include<stdio.h>
int main()
{
int a[10];
int b[10];
int i,j=0,sum,varg;
for (i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
varg=sum/10;
for(i=0;i<10;i++)
{
if(a[i]>varg)
{
scanf("%d",&b[j]);
j++;
}
}
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
}
⑺ C语言,二维数组问题,学生成绩单求和,出什么问题了
#include "stdio.h"
void main()
{
int a[3][2],i,j; //i是不同学生,j不同分数//
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
printf("english,math,chinese\n");
scanf("%d",&a[i][j]);
}
}
for(j=0;j<2;j++)
{
int s1=0;
for(i=0;i<3;i++)
{
s1=s1+a[i][j];
}
printf("总分%d",s1);
}
}
a[3][2]的数组最大的元素下标是a[2][1];
scanf("%d",&a[i][j]);scanf()函数后边跟的是地址专
二维数组的元素是用a[i][j]表示属,不是a[i]就能代表一个元素的。
你要的是什么总分?
你写的程序输出的是每科课程的总分,不是每个学生的总分。
你改的什么程序啊,说了a[3][2]的数组最大的元素下标是a[2][1];你还能写
for(i=0;i<=2;i++),
for(j=0;j<=3;j++)
麻烦你好好看看我给你改的 ,好不 ,亲 不要让我这么拙计。
⑻ c语言 用二维数组统计4个学生3门成绩,求每个学生的平均分
给你个思路 一个二维数组 a[4][3] 然后每一行的值可以相加/3 比如是a[1][]所有的值除以三
思路给你了 你自己写哈
⑼ 求C语言程序:创建二维数组 输入5个学生的四门课成绩 编程计算每个学生的总分和每门课的平均分~~谢谢
类似的回答:
#include <stdio.h>
#define M 5
#define N 4
int sumStu(int a[][N],int n) //每个同学的总成绩
{
int sum=0,i;
for(i=0;i<N;i++)
sum+=a[n][i];
return sum;
}
int sumSco(int a[][N],int n) //每门课的总成绩,后求平均分
{
int sum=0,i;
for(i=0;i<M;i++)
sum+=a[i][n];
return sum;
}
void sort(int sum[M]) //冒泡排序
{
int i,j,t;
for(i=0;i<M;i++)
for(j=0;j<M-i-1;j++)
if(sum[j]<sum[j+1])
{
t=sum[j];
sum[j]=sum[j+1];
sum[j+1]=t;
}
}
void main()
{
int i,a[M][N],sum1[M],sum3[M],k,j;
float sum2[N];
printf("string:\n");
for(k=0;k<M;k++)
for(j=0;j<N;j++)
scanf("%d",&a[k][j]);
for(i=0;i<M;i++)
sum1[i]=sum3[i]=sumStu(a,i);
for(i=0;i<N;i++)
sum2[i]=sumSco(a,i);
sort(sum3);
printf("每个同学的总成绩:\n");
for(i=0;i<M;i++)
printf("%d ",sum1[i]);
printf("\n每门课的平均分:\n");
for(i=0;i<N;i++)
printf("%0.2f ",sum2[i]/5);
printf("\n每个同学的总成绩由大到小排序:\n");
for(i=0;i<M;i++)
printf("%d ",sum3[i]);
printf("\n");
}