C语言【问题描述】 输入10个数,查找这些数中的最大数及个数。 【输入形式】 输入任意10个数,用空格分开。 【输出形式】 文字组成的的提示信息 【样例输入】 1 3 5 3 8 2 8 8 7 2 【样例输出】 最大值8共有3个 #include <stdio.h> int findmax(int *x,int *num,int n); int main() { int a[10],num,max,n; for(n=0;n<10;n++) scanf("%d",&a[n]); max=findmax(a,&num,n); printf("最大值%d共有%d个",max,num); return 0; } int findmax(int *x,int *num,int n) { }
时间: 2024-01-06 08:03:38 浏览: 21
可以使用以下代码实现:
```
#include <stdio.h>
int findmax(int *x, int *num, int n);
int main() {
int a[10], num, max, n;
for(n = 0; n < 10; n++)
scanf("%d", &a[n]);
max = findmax(a, &num, 10);
printf("最大值%d共有%d个", max, num);
return 0;
}
int findmax(int *x, int *num, int n) {
int i, max = x[0], count = 1;
for(i = 1; i < n; i++) {
if(x[i] > max) {
max = x[i];
count = 1;
} else if(x[i] == max) {
count++;
}
}
*num = count;
return max;
}
```
在主函数中,先读入10个数并存放在数组a中,然后调用findmax函数找出最大值及其个数,并将结果输出。findmax函数中,先将第一个数设为最大值,然后遍历数组,如果发现比当前最大值还要大的数,就更新最大值,并将计数器count设为1;如果发现和最大值相等的数,则将计数器count加1。最后返回最大值,同时通过指针将计数器的值传回主函数。
阅读全文