编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也是最小。

题目

编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也是最小。


相似考题
参考答案和解析
正确答案: intn=4;
int[,]a={{25,12,22,14},{15,16,17,18},{19,20,21,13},{23,24,11,26}};
inti,j,k,temp,min;
Console.Write("/n二维数组:");
for(i=0;i{
Console.Write("/n/t");
for(j=0;j}
Console.WriteLine("/n/n行列最小值");
for(i=0;ifor(j=0;j{
temp=a[i,j];
min=temp;
/*
for(k=0;k{
if(a[i,k]if(a[k,j]}
*/
for(k=0;kif(a[i,k]for(k=0;kif(a[k,j]if(temp==min)Console.WriteLine("i={0},j={1}{2}",i,j,temp);
}
更多“编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也是最小。”相关问题
  • 第1题:

    阅读以下说明和流程图,回答问题将解答填入对应栏。

    [说明]

    本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。

    注:int min(int X,int y)为返回两数中最小数的函数。

    int minInArray(int a[],int n)为返回数组中最小数的函数。

    minA为数组中最小值。

    [问题l]

    将流程图的(1)~(4)处补充完整。

    [问题2]

    min()函数的定义为(5)。


    正确答案:(1) minInArray(an); (2) 1; (3) minA=a[n-1]; (4) minA=min(minInArray(an-1)a[n]); (5) xy?x:y;
    (1) minInArray(a,n); (2) 1; (3) minA=a[n-1]; (4) minA=min(minInArray(a,n-1),a[n]); (5) xy?x:y; 解析:本题目考查流程图。
    题目是利用递归来求数组中的最小值,则一定是反复的调用一个求数组最小值的函数,直到比较数组中最后只剩下两个数,则(1)中填入的应是“minlnArray(a,n)”,然后,判断n的值是否为1,如果是,则说明数组中只有一个数,则它一定就是最小值,可以直接输出,所以(2)应填入“1”,(3)应填入“minA=a[n]”;如果n的值不是1,则说明要继续递归,则再次调用求数组最小值的函数,把数组前n-1项的最小值同第n项做比较,所以(4)填入“minA=min(minInArray(a,n-1),a[n])”,由于min()是一个比较函数,返回两数中较小的数,我们可以用三元运算符直接定义为x y?x:y。

  • 第2题:

    请编一个函数void proc(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。

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

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

    试题程序:


    正确答案:


    【解析】按照题目中要求,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。首先比较二维数组中每一行的元素,然后找出每一行中的最大元素,放入一维数组pp中,最后返回到主函数当中。

  • 第3题:

    假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N之间。()

    A

    B



  • 第4题:

    假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。()

    A

    B



  • 第5题:

    假定二维数组的定义为"double a[M][N];"则数组元素的行下标取值范围在()之间。
    0~M-1

  • 第6题:

    设二维数组A[1„m,1„n]按行存储在数组B中,则二维数组元素A[i,j]在一维数组B中的下标为()。

    • A、n*(i-1)+j
    • B、n*(i-1)+j-1
    • C、i*(j-1)
    • D、j*m+i-1

    正确答案:A

  • 第7题:

    以下关于二维数组的描述中,正确的有:()。

    • A、如有定义inta[2][3];则数组a的最后一个元素为a[1][2]
    • B、一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组
    • C、在定义二维数组时,可以将该数组的两个维数全部省略
    • D、对于二维数组,即可以按元素初始化,也可以按行初始化

    正确答案:A,B,D

  • 第8题:

    一维数组定义语句intn=10,a[n];则()

    • A、数组长度为10
    • B、数组中最后一个元素的下标是n-1
    • C、数组中第一个元素是a[1]
    • D、语法错

    正确答案:D

  • 第9题:

    下列语句能正确定义数组的是()。

    • A、用ReDim语句对同一数组重新定义时,可以改变数组大小、维数以及数组元素的数据类型
    • B、在同一个程序中,可以多次使用ReDim语句对同一个数组进行重新定义
    • C、在定义动态数组时,数组维的界不能是变量;定义动态数组时,数组维的界可以是变量
    • D、数组可以分为动态数组和静态数组。动态数组在程序运行时分配存储空间;静态数组在程序编译时分配内存空间

    正确答案:A

  • 第10题:

    判断题
    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。()
    A

    B


    正确答案:
    解析: 暂无解析

  • 第11题:

    问答题
    编一个程序,定义一个n行n列的二维整数数组,赋初值,然后求出对角线上的元素之和。

    正确答案: int n=5;
    int s=0;
    int[,]arr={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25},{31,32,33,34,35},{41,42,43,44,45}};
    inti,j;
    for(i=0;i {
    for(j=0;j {
    if(i==j,,i+j==n+1)
    s=s+arr[i,j];
    }
    }
    Console.WriteLine("对角线上的元素之和{0}",s);
    解析: 暂无解析

  • 第12题:

    问答题
    编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也是最小。

    正确答案: intn=4;
    int[,]a={{25,12,22,14},{15,16,17,18},{19,20,21,13},{23,24,11,26}};
    inti,j,k,temp,min;
    Console.Write("/n二维数组:");
    for(i=0;i{
    Console.Write("/n/t");
    for(j=0;j}
    Console.WriteLine("/n/n行列最小值");
    for(i=0;ifor(j=0;j{
    temp=a[i,j];
    min=temp;
    /*
    for(k=0;k{
    if(a[i,k]if(a[k,j]}
    */
    for(k=0;kif(a[i,k]for(k=0;kif(a[k,j]if(temp==min)Console.WriteLine("i={0},j={1}{2}",i,j,temp);
    }
    解析: 暂无解析

  • 第13题:

    假定二维数组的定义语句为“doublea[M][N];”,则每个数组元素的列下标取值范围在0~N-1之间。()

    此题为判断题(对,错)。


    正确答案:√

  • 第14题:

    假定二维数组的定义为“char a[M][N];”,则该数组所占存储空间的字节数为()。
    M*N

  • 第15题:

    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。()

    A

    B



  • 第16题:

    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为()。
    M*N

  • 第17题:

    编一个程序,定义一个n行n列的二维整数数组,赋初值,然后求出对角线上的元素之和。


    正确答案: int n=5;
    int s=0;
    int[,]arr={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25},{31,32,33,34,35},{41,42,43,44,45}};
    inti,j;
    for(i=0;i {
    for(j=0;j {
    if(i==j||i+j==n+1)
    s=s+arr[i,j];
    }
    }
    Console.WriteLine("对角线上的元素之和{0}",s);

  • 第18题:

    设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为()。

    • A、(i-1)*n+j
    • B、(i-1)*n+j-1
    • C、i*(j-1)
    • D、j*m+i-1

    正确答案:A

  • 第19题:

    在VBScript中,如果定义了一个数组Dim array1(20,30),则它实际上是一个有()行()列的二维数组。


    正确答案:21;31

  • 第20题:

    下面关于VisualFoxPro数组的叙述中,错误的是()。

    • A、用DIMENSION和DECLARE都可以定义数组
    • B、VisualFoxPro只支持一维数组和二维数组
    • C、一个数组中各个数组元素必须是同一种数据类型
    • D、新定义数组的各种数组元素初值为.F.

    正确答案:C

  • 第21题:

    填空题
    假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为()。

    正确答案: M*N
    解析: 暂无解析

  • 第22题:

    填空题
    假定二维数组的定义为"double a[M][N];"则数组元素的行下标取值范围在()之间。

    正确答案: 0~M-1
    解析: 暂无解析

  • 第23题:

    判断题
    假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N之间。()
    A

    B


    正确答案:
    解析: 暂无解析