头歌C语言实训项目-数组、指针和函数综合编程练习
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录
第1关:数组、指针和函数综合编程练习1
题目:
代码思路:
代码表示:
第2关:数组、指针和函数综合编程练习2
题目:
代码思路:
代码表示:
第3关:数组、指针和函数综合编程练习3
题目:
代码思路:
代码表示:
第4关:数组、指针和函数综合编程练习4
题目:
代码思路:
代码表示:
第1关:数组、指针和函数综合编程练习1
题目:
用一维数组和指针变量作为函数参数,编程输出某班一门课成绩的最高分及其学号。
测试输入
5
99011 84
99012 83
99013 88
99014 87
99015 61预期输出:
maxScore = 88, maxNum = 99013
代码思路:
这题的主函数部分代码已经给出,我们只需要根据主函数所给的条件,写出FindMax()函数即可。题目要求返回最高分,所以我们用for循环找出最高分,将其赋给a,然后将a返回即可。
代码表示:
#include
#define ARR_SIZE 40
int FindMax(int score[], long num[], int n, long *pMaxNum);
int main(void)
{ int score[ARR_SIZE], maxScore, n, i;long num[ARR_SIZE], maxNum;printf("Please enter total number:");scanf("%d", &n); //从键盘输入学生人数nprintf("Please enter the number and score:\n");for(i=0; i
第2关:数组、指针和函数综合编程练习2
题目:
本关任务:数组、指针和函数综合编程练习。
用二维数组和指针变量作为函数参数,编程输出三个班学生(假设每班
4个学生)的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。测试输入
81 72 73 64
65 86 77 88
91 90 85 92预期输出:
maxScore = 92, class = 3, number = 4
代码思路:
这题和上一题思路一样,根据主函数给出的代码,我们可以判断出需要返回最高分maxScore的值,并且要将班级和学号赋给 row 和 col ,因此我们可以用双层for循环实现二维数组的比较,得到最大值和其相应数据后赋值返回即可
代码表示:
#include
#define CLASS 3
#define STU 4
int FindMax(int score[CLASS][STU], int m, int *pRow, int *pCol);
int main(void)
{ int score[CLASS][STU], i, j, maxScore, row, col;printf("Please enter score:\n");for (i=0; i
第3关:数组、指针和函数综合编程练习3
题目:
本关任务:数组、指针和函数综合编程练习。
用指向二维数组第
0行第0列元素的指针作为函数参数,编写一个计算任意 m 行 n 列二维数组中元素的最大值,并指出其所在的行列下标值的函数,利用该函数计算三个班学生(假设每班4个学生)的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。测试输入
81 72 73 64
65 86 77 88
91 90 85 92预期输出:
maxScore = 92, class = 3, number = 4
代码思路:
本题和上一题一样,只是将二维数组改成了指针( score[0][0]表示p[0],score[0][1]表示p[1] ),方法也和上一题一样
代码表示:
#include
#define CLASS 3
#define STU 4
int FindMax(int *p, int m, int n, int *pRow, int *pCol);
int main(void)
{ int score[CLASS][STU], i, j, maxScore, row, col;printf("Please enter score:\n");for (i=0; i
第4关:数组、指针和函数综合编程练习4
题目:
本关任务:数组、指针和函数综合编程练习。
编写一个计算任意 m 行 n 列二维数组中元素的最大值,并指出其所在的行列下标值的函数,利用该函数和动态内存分配方法,计算任意 m 个班、每班 n 个学生的某门课成绩的最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。
测试输入
81 72 73 64
65 86 77 88
91 90 85 92预期输出:
maxScore = 92, class = 3, number = 4
代码思路:
这题和上一题一样,只是将新增加了动态内存分配的方式
代码表示:
#include
#include
int FindMax(int *p, int m, int n, int *pRow, int *pCol);
int main(void)
{ int *pScore, i, j, m, n, maxScore, row, col;printf("Please enter array size m,n:");scanf("%d,%d", &m, &n); //输入班级数m和学生数npScore = (int *) calloc(m*n, sizeof (int)); //申请内存if (pScore == NULL) {printf("No enough memory!\n");exit(0); }printf("Please enter the score:\n");for (i=0; i
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
