以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能 #define MIN -2147483647 int findmax (int x[],int n) { int i,max; for(i=0;i { max=MIN; if(max return max; } 造成错误的原因是
举一反三
- 设计一个函数,求一个数组中的最大值和最小值。并在主函数中调用它。 #include void fun1(int [],int,int *,int *);void main(){ int a[5]={45,22,54,7,12}; int max,min; _________ ; printf("max=%d,min=%d ",max,min); } void fun1(int a[],int n,int *max,int *min){ int i; *max=a[0]; *min=a[0]; for(i=1;i if( ____ ) *max=a[i]; if( ____ ) *min=a[i]; }}在划线处填上正确的选项( )。[/i][/i] A: fun1(a,5,max,min),*maxa[i] B: fun1(a,5,&max,&min),maxa[i] C: fun1(a,5,&max,&min),*max>a[i],*min D: fun1(a,5,&max,&min),*maxa[i]
- 从键盘任意输入10个整数,计算并输出最大值和最小值及其它们在数组中的下标位置。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。(B) 程序运行结果示例1: Input 10 numbers:1 2 3 4 5 6 7 8 9 10↙ max=10,pos=9 min=1,pos=0 程序运行结果示例2: Input 10 numbers:2 4 5 6 8 10 1 3 5 7 9↙ max=10,pos=5 min=1,pos=6 #include int FindMax(int a[], int n, int *pMaxPos); int FindMin(int a[], int n, int *pMinPos); int main() { int a[10], maxValue, maxPos, minValue, minPos, i; printf("Input 10 numbers:"); for (i=0; i<10; i++) { scanf("%d", &a[i]); // 输入10个数 } maxValue = FindMax(a, 10, _________); // 找最大值及其所在下标位置 minValue = FindMin(a, 10, _________); // 找最小值及其所在下标位置 printf("max=%d,pos=%d ", maxValue, maxPos); printf("min=%d,pos=%d ", minValue, minPos); return 0; } //函数功能:求有n个元素的整型数组a中的最大值及其所在下标位置,函数返回最大值 int FindMax(int a[], int n, int *pMaxPos) { int i, max; max = a[0]; //假设a[0]为最大值 __________; //假设最大值在数组中的下标位置为0 for (i=1; i max) { max = a[i]; __________; //pMaxPos指向最大值数组元素的下标位置 } } return max ; } //函数功能:求有n个元素的整型数组a中的最小值及其所在下标位置,函数返回最小值 int FindMin(int a[], int n, int *pMinPos) { int i, min; min = a[0]; //假设a[0]为最小 __________; //假设最小值在数组中的下标位置为0 for (i=1; i<10; i++) { if (a[i] < min) { min = a[i]; __________; //pMinPos指向最小值数组元素的下标位置 } } return min ; }
- 【填空题】补充完成以下函数功能,返回数组a中的第n大元素的值 int fun(int a[], int s, int n) { const int MININT = -10000; int i, j, max, index; for (i = 0; i < n; ++i) { max = MININT; for (j = i; j < s; ++j) if (a[j] > __(1)___) { max = a[j]; index = j; } a[index] = a[i]; a[i] = __(2)_____; } return max; }
- 编写函数,求一组数中的最大值、最小值和平均值。其中用全局变量max存放最大值,min存放最小值,函数返回平均值。 #include int max,min; float fun(int a[ ],int n) { } int main() { int x[10],i,m,n; float p; for(i=0;i<10;i++) scanf("%d",&x[i]); p=fun(x,10); printf("max=%d,min=%d,average=%.2f ",max,min,p); return 0; } 输入样例: 2 5 4 8 6 9 1 3 7 0 输出样例: max=9,min=0,average=4.50
- 下列程序运行时输入:20 30 5 85 40,运行结果为: #include #define N 5 int main(void) { int a[N],max,min,sum,i; for (i=0;i scanf("%d",&a[i]); sum=max=min=a[0]; for (i=1;i { sum+=a[i]; if (a[i]>max) max=a[i]; if (a[i] } printf("max=%d min=%d sum=%d aver=%4.2f ",max,min,sum,(float)(sum-max-min)/(N-2)); return 0; }