lsdsg 发表于 2021-11-19 15:06:55

编程题9

【问题描述】

输入1 个正整数n(1<n<6)和n 阶整数矩阵a 中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标及鞍点值;否则,输出none; (只要求输出a的第一个鞍点)。



【输入形式】

第一行,输入一个正整数,范围2~6

第二行开始,输入n阶整数矩阵,数据项用一个空格分开


【输出形式】

如果有鞍点,输出三个整数,分别代表第一个鞍点的行下标、列下标、鞍点值,它们之间用空格分隔;如果没有鞍点,输出:none



【样例输入】

4

1 7 4 1

4 8 3 6

1 6 1 2

0 7 8 9



【样例输出】

2 1 6

jhq999 发表于 2021-11-19 17:27:52

int main()
{

        int n=0;
        scanf("%d",&n);
        fflush(stdin);
        int **a=new int*,*tmp=new int,(*rmax)=(int(*))(new int),i=0,j=0;

        for (i = 0; i < n; i++)a=tmp+i*n,\
                rmax=rmax=rmax=0;

        for(i = 0; i < n; i++)
        {
                for (j = 0; j < n; j++)
                {
                        scanf("%d",&a);
                }
                fflush(stdin);
        }


        for(i=0;i<n;i++)
        {
                rmax=i;
                for(j=1;j<n;j++)
                {
                        if(a]]<a)rmax=j;
                }
                for(j=1;j<n;j++)
                {
                        if(a]]>a])break;
                }
                if(j==n)break;//if(j==n)rmax=1;

        }
        if (n==i)
        {
                printf("none");
        }
        else
        {
                printf("%d %d %d",rmax,rmax,a]]);
        }
        delete[] tmp;
        delete[] a;
        delete[] rmax;
        return 0;
}      
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
2 1 6
页: [1]
查看完整版本: 编程题9