当前位置:新励学网 > 秒知问答 > c语言程序设计学生成绩管理

c语言程序设计学生成绩管理

发表时间:2024-07-25 17:06:22 来源:网友投稿

已发送需要注意的是查收:

一、

程序的设计任务与功能:输入几组学生的信息按总成绩大小排序后输出,并输出各科成绩的平均值.

二、

动态定义了一个二维数组,可以根据用户的需要确定大小。

在定义二维数组是,每一维都比实际大一,分别用来储蓄每个学生的总成绩与各科平均值。

主要算法在于一个冒泡排序,此冒泡排序是以每个学生的信息为单位处理的。

#include

voidmain()

{

intn,m,i,j,c;/*n、m分别表示二维数组大小(实际更大),由用户输入,i、j做为输出数组数值时的下标*/

puts(请输入学生数n(n<=1000)和课程数m(m<=10));

scanf(%d%d,&n,&m);

int**a=newint*[n+1];

for(i=0;i<=n;i++)

a[i]=newint[m+1];//完成了二维数组的动态赋值。

for(i=0;i<n;i++)//信息录入

{

for(j=0;j<m;j++)

scanf(%d,&a[i][j]);

}

for(i=0;i<n;i++)//将每个学生的各科成绩相加

{

a[i][m]=0;

for(j=0;j<m;j++)

a[i][m]+=a[i][j];

}

for(i=0;i<m;i++)//各科总成绩初始化为0

a[n][i]=0;

for(i=n;i>1;i--)//冒泡排序,按总成绩大小给学生排序

for(j=0;j<i-1;j++)

if(a[j][m]>a[j+1][m])

for(c=0;c<=m;c++)

{

inttemp;

temp=a[j][c];

a[j][c]=a[j+1][c];

a[j+1][c]=temp;

}

puts(输出为:);

for(i=n-1;i>=0;i--)//输入排序后的学生成绩

{

for(j=0;j<m;j++)

{

printf(%5d,a[i][j]);

a[n][j]+=a[i][j];

}

puts();

}

for(i=0;i<m;i++)//输出各科总成绩平均值

printf(%5.1f,1.0*a[n][i]/n);

puts();

}

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!