浙江师范大学c语言函数实验答案
1. c语言程序设计苏小红版第七章课后实验答案
不知道你说的是不是这一次实验
2.2.7实验7:二维数组和函数综合编程练习
成绩排名次
某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。考试后要求:
(1)计算每个学生的总分和平均分;
(2)按总分成绩由高到低排出成绩的名次;
(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;
(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。
【思考题】请读者思考如下问题。
①如果增加一个要求:要求按照学生的学号由小到大对学号、成绩等信息进行排序,那么程序如何修改呢?
②如果要求程序运行后先打印出一个菜单,提示用户选择:成绩录入、成绩排序、成绩查找,在选择某项功能后执行相应的操作,那么程序如何修改呢?
答案
#include <stdio.h>
#define STU 30
#define COURSE 3
void Input(long num[],int score[][COURSE],int n);
void GetSumAver(int score[][COURSE],int n,int sum[],float aver[]);
void Sort(long num[],int score[][COURSE],int n,int sum[],float aver[]);
void Print(long num[],int score[][COURSE],int n,int sum[],float aver[]);
int Search(long num[], int n, long x);
main()
{
int n, score[STU][COURSE], sum[STU], pos;
long num[STU], x;
float aver[STU];
printf("Please enter the total number of the students(n<=30):");
scanf("%d", &n); /*输入参加考试的学生人数*/
printf("Enter No. and score as: MT EN PH ");
Input(num, score, n); /*输入学生成绩*/
GetSumAver(score, n, sum, aver); /*计算总分和平均分*/
printf("Before sort: ");
Print(num, score, n, sum, aver);
Sort(num, score, n, sum, aver); /*排名次*/
printf("After sort: ");
Print(num, score, n, sum, aver);
printf("Please enter searching number:");
scanf("%ld", &x); /*以长整型格式输入待查找学生的学号*/
pos = Search(num, n, x); /*名次查询*/
if (pos != -1)
{
printf("position: NO MT EN PH SUM AVER ");
printf("%8d %4ld %4d %4d %4d %5d %5.0f ",
pos+1,num[pos], score[pos][0],score[pos][1],
score[pos][2], sum[pos],aver[pos]);
}
else
{
printf("Not found! ");
}
}
/* 函数功能:输入某班学生期末考试三门课程成绩
函数参数:长整型数组num,存放学生学号
整型数组score,存放学生成绩
整型变量n,存放学生人数
函数返回值:无
*/
void Input(long num[], int score[][COURSE], int n)
{
int i, j;
for (i=0; i<n; i++)
{
scanf("%ld", &num[i]);
for (j=0; j<COURSE; j++)
{
scanf("%d", &score[i][j]);
}
}
}
/* 函数功能:计算每个学生的总分和平均分
函数参数: 整型数组score,存放学生成绩
整型变量n,存放学生人数
整型数组sum,计算得到的每个学生的总分
实型数组aver,计算得到的每个学生的平均分
函数返回值:无
*/
void GetSumAver(int score[][COURSE], int n, int sum[], float aver[])
{
int i, j;
for (i=0; i<n; i++)
{
sum[i] = 0;
for (j=0; j<COURSE; j++)
{
sum[i] = sum[i] + score[i][j];
}
aver[i] = (float)sum[i] / COURSE;
}
}
/* 函数功能:按总分成绩由高到低排出成绩的名次
函数参数:长整型数组num,存放学生学号
整型数组score,存放学生成绩
整型变量n,存放学生人数
整型数组sum,存放每个学生的总分
实型数组aver,存放每个学生的平均分
函数返回值:无
*/
void Sort(long num[],int score[][COURSE], int n, int sum[], float aver[])
{
int i, j, k, m;
int temp1;
long temp2;
float temp3;
for (i=0; i<n-1; i++)
{
k = i;
for (j=i+1; j<n; j++)
{
if (sum[j] > sum[k]) k = j;
}
if (k != i)
{
temp1 = sum[k]; sum[k] = sum[i]; sum[i] = temp1;
temp2 = num[k]; num[k] = num[i]; num[i] = temp2;
temp3 = aver[k]; aver[k] = aver[i]; aver[i] = temp3;
for (m=0; m<COURSE; m++)
{
temp1 = score[k][m];
score[k][m] = score[i][m];
score[i][m] = temp1;
}
}
}
}
/* 函数功能: 打印名次表,表格内包括学生编号、各科分数、总分和平均分
函数参数: 长整型数组num,存放学生学号
整型数组score,存放学生成绩
整型变量n,存放学生人数
整型数组sum,存放每个学生的总分
实型数组aver,存放每个学生的平均分
函数返回值:无
*/
void Print(long num[], int score[][COURSE], int n,
int sum[], float aver[])
{
int i, j;
printf(" NO | MT EN PH SUM AVER ");
printf("---------------------------------------------------- ");
for (i=0; i<n; i++)
{
printf("%ld | ", num[i]);
for (j=0; j<COURSE; j++)
{
printf("%4d ", score[i][j]);
}
printf("%5d %5.0f ", sum[i], aver[i]);
}
}
/* 函数功能:在学号数组中顺序查找学生的学号
函数参数:长整型数组num,存放学生学号
整型变量n,存放学生人数
长整型变量x,存放待查找学生的学号
函数返回值:找到时,返回学生学号在学号数组中的下标位置,否则返回值-1
*/
int Search(long num[], int n, long x)
{
int i;
for (i=0; i<n; i++)
{
if (num[i] == x) return(i);
}
return (-1);
}
2. 跪求C语言程序设计课后习题答案及C语言程序设计习题解答与实验指导答案。
第一部分习题解答
第1章引言习题解答1
第2章基本的程序语句习题解答2
第3章程序的简单算法制定习题解答6
第4章分支结构习题解答11
第5章循环结构习题解答19
第6章函数和宏定义习题解答30
第7章数组习题解答38
第8章指针习题解答48
第9章构造数据类型习题解答56
第10章文件操作习题解答65
第11章位运算习题解答73
第二部分实验
第1章引言实验79
1.1目的和要求79
1.2实验练习79
1.3综合练习83
第2章基本的程序语句实验83
2.1目的和要求83
2.2相关知识83
2.3实验练习84
2.4综合练习90
第3章程序的简单算法制定实验91
3.1目的和要求91
3.2实验练习91
第4章分支结构实验96
4.1目的和要求96
4.2相关知识96
4.3实验练习97
4.4综合练习105
第5章循环结构实验107
5.1目的和要求107
5.2相关知识107
5.3实验练习108
5.4综合练习118
第6章函数和宏定义实验120
6.1目的和要求120
6.2相关知识121
6.3实验练习122
6.4综合练习126
第7章数组实验127
7.1目的和要求127
7.2相关知识128
7.3实验练习129
7.4综合练习134
第8章指针实验136
8.1目的和要求136
8.2相关知识136
8.3实验练习137
8.4综合练习144
第9章构造数据类型实验145
9.1目的和要求145
9.2相关知识145
9.3实验练习147
9.4综合练习153
第10章文件操作实验155
10.1目的和要求155
10.2相关知识156
10.3实验练习157
10.4综合练习164
第11章位运算实验165
11.1目的和要求165
11.2相关知识165
11.3实验练习166
11.4综合练习168
第三部分其他
第12章集成开发环境介绍170
12.1Turbo C的安装及使用170
12.1.1Turbo C的安装170
12.1.2Turbo C简介170
12.1.3Turbo C的使用173
12.2Borland C++的安装及使用175
12.2.1Borland C++的安装175
12.2.2编辑、编译和运行程序175
第13章常见编译错误信息176
13.1致命错误177
13.2一般错误177
13.3警告185