程序运行结果示例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 ;
}
--- &minPos --- *pMaxPos = 0 --- *pMaxPos = i --- *pMinPos = 0 --- *pMinPos = i
举一反三
- 中国大学MOOC:"从键盘任意输入10个整数,计算并输出最大值和最小值及其它们在数组中的下标位置。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。程序运行结果示例1:Input 10 numbers:1 2 3 4 5 6 7 8 9 10↙max=10,pos=9min=1,pos=0程序运行结果示例2:Input 10 numbers:2 4 5 6 8 10 1 3 5 7 9↙max=10,pos=5min=1,pos=6#include <stdio.h> 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 = Fi[/i]
- 中国大学MOOC:"下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下:Input n(n<=10):10↙Input 10 Numbers:1 4 3 0 –2 6 7 2 9 -1 ↙Exchange results: 1 4 3 0 9 6 7 2 -2 -1按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include void ReadData(int a[], int n); void PrintData(int a[], int n); void MaxMinExchang(int a[], int n); void Swap(int *x, int *y); int main() { int a[10], n; printf("Input n(n<=10):"); scanf("%d", &n); printf("Input %d numbers:", n); ReadData(a, n); MaxMinExchang(a, n); printf("Exchange results:"); PrintData(a, n); return 0; } /* 函数功能:输入数组a的n个元素值 */ void ReadData(int a[], int n) { int i; for (i=0; i maxValue) { maxValue = _______; maxPos = ____; } if (a[i] < minValue) { minValue = a[i]; minPos = i; } } Swap(________________); } /* 函数功能:两整数值互换 */ void Swap(int *x, int *y) { int ________; temp = *x; _________; *y = temp; }";
- 编写函数,求一组数中的最大值、最小值和平均值。其中用全局变量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
- 编写程序,求出数组中最大值的位置及其值。 main() {int a[10], i, loc=0; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=1;________;i++) if(__________) loc=i; printf("最大值:%d 位置:%d ", a[loc], loc+1); }
- 以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能 #define MIN -2147483647 int findmax (int x[],int n) { int i,max; for(i=0;i { max=MIN; if(max return max; } 造成错误的原因是
内容
- 0
设计一个函数,求一个数组中的最大值和最小值。并在主函数中调用它。 #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]
- 1
以下程序在一维数组中找出最大值和最小值,主函数中调用该函数并输出数组的最大最小元素。请补充完整。voidcal( int a[],intn, ___1___, ___2___){___3___;for(inti=1;i<;n;i++){if(a[i]>;max)max=a[i];elseif(a[i]<;min)min=a[i];}}intmain(){inta[10];intmax,min;cout<;<;"输入10个整数:"<;<;endl;for(inti=0;i<;10;i++)cin>;>;a[i];cal( ___4___ ,__5__ , max , min);for(i=0;i<;10;i++)cout<;<;a[i]<;<;"";cout<;<;endl;cout<;<;"max="<;<;max<;<;",min="<;<;min<;<;endl;return0;}[/i][/i][/i][/i][/i][/i]
- 2
以下程序调用fun函数求数组中最大值所在元素的下标。 #include void fun(int *s,int n, int *k) { int i; for(i=0,*k=i;is[*k]) _ } int main() { int a[5]={1,8,3,6,9},k; fun(a,5,&k); printf(“%d,%d ”,k,a[k]); return 0; }
- 3
从键盘输入20个数,存入一维数组中,求最小值及最小值所有下标。 Scanner sc=new Scanner(System.in);____; for (int i = 0; ____; i++) {System.out.println("请输入第" + (i+1) + "个数:"); num[i] = Integer.parseInt(sc.nextLine()); } int min = num[0]; int index = 0; for (int i = 1; ____; i++){ if (num[i] <;min) { min= num[i]; ____; } } System.out.println("最小值为:" + min + ",下标为:" + index);[/i][/i][/i]
- 4
【填空题】补充完成以下函数功能,返回数组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; }