• 2021-04-14
    从键盘任意输入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 ;
    }
  • &maxPos
    --- &minPos --- *pMaxPos = 0 --- *pMaxPos = i --- *pMinPos = 0 --- *pMinPos = i

    举一反三

    内容

    • 0

      设计一个函数,求一个数组中的最大值和最小值。并在主函数中调用它。 #include void fun1(int &#91;&#93;,int,int *,int *);void main(){ int a&#91;5&#93;={45,22,54,7,12}; int max,min; _________ ; printf("max=%d,min=%d ",max,min); } void fun1(int a&#91;&#93;,int n,int *max,int *min){ int i; *max=a&#91;0&#93;; *min=a&#91;0&#93;; 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&gt;a[i],*min D: fun1(a,5,&max,&min),*maxa[i]

    • 1

      以下程序在一维数组中找出最大值和最小值,主函数中调用该函数并输出数组的最大最小元素。请补充完整。voidcal( int a&#91;&#93;,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&#91;10&#93;;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&#91;0&#93;; 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; }