用C语言和函数怎么写这个程序? 输入20个数,找出最大数和最小数,并返回原来最大数和最小数的位置。
问题描述:
用C语言和函数怎么写这个程序?
输入20个数,找出最大数和最小数,并返回原来最大数和最小数的位置。
答
供参考:
#include <stdio.h>
void find_num(int* a, int n, int* max_i, int* min_i)
{
int i, max, min;
max = min = a[0]; *max_i = 0; *min_i = 0;
for (i = 0; i < n; i++)
{
if (a[i] > max)
{
max = a[i];
*max_i = i;
}
if (a[i] < min)
{
min = a[i];
*min_i = i;
}
}
}
int main()
{
int a[20], i, max_i, min_i;
for (i = 0; i < 20; i++)
scanf("%d", &a[i]);
find_num(a, 20, &max_i, &min_i);
printf("max:a[%d]=%d, min:a[%d]=%d", max_i, a[max_i], min_i, a[min_i]);
return 0;
}
答
可以直接遍历数组,同时比较最大和最小数,然后记录位置。