c语言程序设计学生成绩管理
已发送需要注意的是查收:
一、
程序的设计任务与功能:输入几组学生的信息按总成绩大小排序后输出,并输出各科成绩的平均值.
二、
动态定义了一个二维数组,可以根据用户的需要确定大小。
在定义二维数组是,每一维都比实际大一,分别用来储蓄每个学生的总成绩与各科平均值。
主要算法在于一个冒泡排序,此冒泡排序是以每个学生的信息为单位处理的。
#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();
}
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇