- 编写一个程序包括主函数和fun函数:主函数的功能是将用户输入的m个人的成绩存放在score数组中,调用fun函数,并输出最高分和最高分所在的序号;函数fun的功能是找到最高分及最高分所在的序号,将最高分存放在max中,将序号存放在Num中, 要求采用2个全局变量实现。
fun函数的原型:void fun(int score[],int m)
测试用例:当score数组中的数据为10、20、30、90、60、70、80 时,main函数输出90,4
fun函数的原型:void fun(int score[],int m)
测试用例:当score数组中的数据为10、20、30、90、60、70、80 时,main函数输出90,4
一个实现如下:
#include <stdio.h>
#include <stdlib.h>
int max; // 成绩最大值
int Num; // 成绩最大值的序号
void fun(int score[],int m){
for(int i=0;i<m;i++){
if(i==0){ // 如果i=0,则将当前元素值赋值给最大值
max=score[0];
Num=i+1; // 记录序号
}else{
// 当时其他位置,如果当前位置的值比最大值大
// 则将当前元素的值赋值给最大值变量max
if(max<score[i]){
max=score[i];
Num=i+1; // 记录序号
}
}
}
}
int main(void){
int m;
// 获取数组长度
printf("请输入人数:");
scanf("%d",&m);
// 申请可以存储m个整数的内存
int * score = (int *)malloc(sizeof(int)*m);
// 从输入获取m个成绩逐个存入score指向的内存
for(int i=0;i<m;i++){
printf("请输入第%d个人的成绩:",i+1);
scanf("%d",&score[i]);
}
// 寻找最大值及其序号
fun(score,m);
// 打印结果
printf("%d,%d",max,Num);
}