用C语言编写程序:输入3名同学5门课程成绩,输出最好成绩及所在的行和列(要求指针作为函数的参数
时间: 2024-02-25 20:56:47 浏览: 112
以下是一个用C语言编写的程序,可以输入3名同学5门课程成绩,输出最好成绩及所在的行和列。程序中使用指针作为函数的参数,以便在函数内可以修改指针所指向的变量。
```c
#include <stdio.h>
void find_max(float (*p)[5], int *row, int *col);
int main()
{
float scores[3][5]; // 定义一个二维数组,用于存储3名同学5门课成绩
int row, col; // 定义两个变量,用于存储最大值所在的行和列
// 读入每个同学的5门课成绩
for(int i=0; i<3; i++) {
printf("请输入第%d名同学的成绩:\n", i+1);
for(int j=0; j<5; j++) {
printf("请输入第%d门课成绩:", j+1);
scanf("%f", &scores[i][j]);
}
}
// 调用函数find_max,查找最大值所在的行和列
find_max(scores, &row, &col);
// 输出最大值及所在的行和列
printf("最高分为%.2f,所在行为%d,所在列为%d\n", scores[row][col], row+1, col+1);
return 0;
}
// 查找二维数组中的最大值,并返回其所在的行和列
void find_max(float (*p)[5], int *row, int *col)
{
float max = p[0][0];
*row = 0;
*col = 0;
for(int i=0; i<3; i++) {
for(int j=0; j<5; j++) {
if(p[i][j] > max) {
max = p[i][j];
*row = i;
*col = j;
}
}
}
}
```
在`find_max`函数中,我们定义了两个指针参数`row`和`col`,用于存储最大值所在的行和列。函数中使用两个循环遍历整个二维数组,查找最大值,并记录其所在的行和列。最后通过指针参数返回最大值所在的行和列。
在`main`函数中,我们调用`find_max`函数,查找最大值并输出。由于指针参数的存在,`find_max`函数内部修改了`row`和`col`的值,因此在`main`函数中可以直接输出其值。
阅读全文