大连理工大学C语言夏浩老师第4次上机作业
题目描述:排序:使用起泡法和选择法对10个整数实现递减排序。
分析:将冒泡排序代码中的>变成
流程图:
开始
输入10个整数
进行沉底排序和选择排序
输出排序后的数列
结束
程序代码:
#include
void main()
{
int i,a[10],b[10];
int j,t,k;
printf("10个数沉底排序和冒泡排序\n");
printf("原始数列:");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++)
{
if(a[i]
{
t=a[i+1];
a[i+1]=a[i];
a[i]=t;
}
}
}
for(j=0;j<9;j++)
{
k=j;
for(i=j+1;i<9;i++)
if(b[k]
if(k!=j)
{
t=b[j];
b[j]=b[k];
b[k]=t;
}
}
printf("沉底排序后的数列:");
for(i=0;i<10;i++)
printf("%2d",a[i]);
printf("\n");
printf("冒泡排序后的数列:");
for(i=0;i<10;i++)
printf("%2d",b[i]);
printf("\n");
return 0;
}
截图:
2.题目描述:统计 :从键盘输入10个学生的数学(MT)、(EN)和物理(PH)成绩,并按照如下统计形式输出,包括学生学号(NO)、各科成绩、总成绩(SUM)、平均分(AVE)及是否每科都超过90分(‘Y’ or ‘N’)
NO MT EN PH SUM AVE >90
--------------------------------------------------------------------
1 97 87 92 276 92 N
2 92 91 90 273 91 Y
3 90 81 82 253 84 N
.....
题目分析:在二维数组输入10个人三科成绩,在第一层循环计算总数和平均数,并判断平均数是否大于90.
流程图:
开始
用二维数组输入成绩
按分析进行相应运算
输出列表
结束
程序代码:
#include
#define num 10
int sum(int grade[][3],int i);
int main()
{
int grade[num][3];
int i,j;
int s=0,a=0;
for(i = 0 ;i < num ;i++)
for(j = 0 ;j < 3 ;j++)
scanf("%d",&grade[i][j]);
printf("NO MT EN PH SUM AVE >90\n");
printf("-----------------------------\n");
for(i = 0 ;i < num ;i++)
{
printf("%2d ",i+1);
for(j = 0 ;j < 3 ;j++)
{
printf("%3d ",grade[i][j]);
s +=