niusouti.com

fun函数的功能是首先对a所指的N行N列的矩阵找出各行中最大的数,再求这N个最大值中最小的那个数作为函数值返回,请填空。#include <stdio.h>#define N 100int fun(int(*a)[N]){ int row,col,max,min; for(row=0;row<N;row++) { for(max=a[row][0],col=1;col<N;col++) if() max=a[row][col]; if(row==0) min=max; else if() min=max;

题目

fun函数的功能是首先对a所指的N行N列的矩阵找出各行中最大的数,再求这N个最大值中最小的那个数作为函数值返回,请填空。#include <stdio.h>#define N 100int fun(int(*a)[N]){ int row,col,max,min; for(row=0;row<N;row++) { for(max=a[row][0],col=1;col<N;col++) if() max=a[row][col]; if(row==0) min=max; else if() min=max; } return min;}


相似考题
更多“fun函数的功能是首先对a所指的N行N列的矩阵找出各行中最大的数,再求这N个最大值中最小的那个数作 ”相关问题
  • 第1题:

    请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为

    F(0)=0,F(1)=1

    F(n)=F(n-1)+F(n-2)

    例如:t=1000时,函数值为987。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <conio.h>

    include <math.h>

    include <stdio.h>

    int fun(int t)

    {

    }

    main()

    {

    int n;

    clrscr();

    n=1000;

    printf("n=%d, f=%d\n",n, fun(n));

    }


    正确答案:int fun(int t) { int a=1b=1c=0i; /*a代表第n-2项b代表第n-1项c代表第n项*/ /*如果求得的数。比指定比较的数小则计算下一个Fibonacci数对ab得新置数*/ do { c=a+b; a=b; b=c; } while(ct); /*如果求得的数c比指定比较的数大时退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c; }
    int fun(int t) { int a=1,b=1,c=0,i; /*a代表第n-2项,b代表第n-1项,c代表第n项*/ /*如果求得的数。比指定比较的数小,则计算下一个Fibonacci数,对a,b得新置数*/ do { c=a+b; a=b; b=c; } while(ct); /*如果求得的数c比指定比较的数大时,退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c; } 解析:根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把c看成是前两项之和(即第n项),而a始终代表第n-2项,b始终代表第n-1项(通过不断地重新赋值来实现)。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。

  • 第2题:

    请编写一个函数fun(),它的功能是:找出一维数组元素中最大的值和它所在的下标,最大值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。

    主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdlib.h>

    include<stdio.h>

    void fun(int a[],int n, int *max,int *d)

    {

    }

    main()

    {

    int i, x[20], max, index, n=10;

    randomize();

    for(i=0; i<=n; i++)

    {

    x[i]=rand()%50;

    printf("%4d",x[i]);

    /*输出一个随机数组*/

    }

    printf("\n");

    fun(x,n,&max,&index);

    printf("Max=%5d,Index=%4d\n",max,index);

    }


    正确答案:void fun(int a[]int nint *maxint *d) { int i; *max=a[0]; *d=0; for(i=0;in;i++) /*将最大的元素放入指针max所指的单元最大元素的下标放入指针d所指的单元*/ if(*maxa[i]) {*max=a[i];*d=i;} }
    void fun(int a[],int n,int *max,int *d) { int i; *max=a[0]; *d=0; for(i=0;in;i++) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/ if(*maxa[i]) {*max=a[i];*d=i;} } 解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即*号运算。

  • 第3题:

    编写一个程序合理使用函数,输入m(0<m<10),n(2<n<10),随机生成m个有鞍点的n*n矩阵(每个随机数为包含在0~9之间的整数),输出这些矩阵(鞍点用红色输出)。 提示:矩阵鞍点是指矩阵中的某一点,既是行中的最大值,又是列中的最小值。 矩阵中不一定存在鞍点,也可能有多个鞍点。随机数函数参见《计算机基础与计算思维》6.3.5小节。


    错误

  • 第4题:

    以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)

    int fun(int a[N][M])

    {int i,j,row=0,col=0;

    for(i=0;i<N;i++)

    for(j=0;j<M;j++)

    if(a[i][j]>a[row][col])(row=i;col=j;)

    return(_____);

    }


    正确答案:a[row][col]
    a[row][col] 解析:嵌套循环,依次遍历二维数组的所有元素,从a[0][0]开始,先按行,后按列,a[row][col]先取a[0][0],若后面的元素比他大,则将此i、j值存入row、col中,即记录元素中当前最大值。循环结束返回a[row][col],即数组最大值。

  • 第5题:

    以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义) int fun(int a[N][M]) {int i,j,row=0,col=0; for(i=0;i<N;i++) for(j=0;j<M;j++) if(a[i][j]>a[row][col]){row=i;col=j;} return(_____); }


    void fun (int(*s) [10]int *bint*nint mmint nn) {int ij; for(i=0;i<mm;s++j++) for(j=0;j<nn;j++) *(b+i*nn+j)=(*s)[j]; *n=mm*nn; } voidfun(int(*s)[10],int*b,int*n,intmm,intnn){inti,j;for(i=0;i<mm;s++,j++)for(j=0;j<nn;j++)*(b+i*nn+j)=(*s)[j];*n=mm*nn;}