C语言从键盘上输入一些整数(输入0为结束),统计其中最大值整数出现...
发布网友
发布时间:2024-04-30 00:12
我来回答
共1个回答
热心网友
时间:2024-08-03 13:26
这个程序中有3个函数,
1、int input(int *p)
这个函数的作用是往一个整型数组中,存放从键盘中输入的数字。并且返回一个整型数,这个返回值表示一共从键盘上输入了几个数字(注:程序中设置了从键盘最多能输入100个整数)。
2、int f(int *p,int n)
这个函数是统计从键盘中输入的数字中最大的有几个。
3、main()
是这个程序运行的主函数。
具体的解释看下面的注释:
#include<stdio.h>
#define N 100 /* N 是定义的一个常量,表示最多能从键盘输入N个数字*/
/* 入口参数*p是一个内存地址 */
int input(int *p)
{int x,n=0;
scanf("%d",&x); /* x是每次从键盘中输入的数字。*/
while(x!=0){ /* n是一个自增量,只要键盘输入的值不是0,while循环就不结束 */
*(p+n++)=x; /* 往p指向的地址中存入数据,n是自增量当做一个地址指针。实际的效果就是往main()函数中定义的数组a中存放从键盘输入的数字。 */
scanf("%d",&x); /* 从键盘读下一个数字 */
}
return n; /* 返回值,一共从键盘输入了几个数字 */
}
int f(int *p,int n){
int i,*q=p,max=*p,s=0;
for(i=1;i<n;i++)
if(q[i]>max) max=q[i]; /* 用一个循环遍历整个数组(main函数中定义的数组a),找出最大的数字 */
q=p;
for(i=0;i<n;i++)
if(q[i]==max) s++; /* 用一个循环遍历整个数组(main函数中定义的数组a),统计最大数字的个数 */
return s; /* 返回统计结果 */
}
void main()
{int a[N],n; /* a[N]是定义的一个整型的数组,数组的长度为N(程序中N为100);n是一个整型变量,存放的是从键盘输入的实际的数字的个数。 */
n=input(a); /* 调用input函数,用数组a的首地址作为入口参数,返回值是从键盘输入的实际的数字的个数。 */
printf("%d\n",f(a,n)); /* 打印出程序的运行结果。 */
}