瞎折腾


私信TA

用户名:chenbin

访问量:63649

签 名:

等  级
排  名 75
经  验 10027
参赛次数 0
文章发表 74
年  龄 0
在职情况 学生
学  校 中南大学
专  业

  自我简介:

解题思路:
1.利用二维指针取生成二维数组;

2. 申请行数个一维指针大小空间,并赋值给二维指针;

3.对于每个一维指,申请列数个元素的空间,并赋值给对应的一维指针。





注意事项:
记得申请完毕要先后释放指针上的内存哦!




参考代码:

#include<stdio.h>

#include <stdlib.h>    //包含动态内存分配函数

int main()

{

     int **p;                   //定义二维指针p

     int n,i,j,r,c,temp;

     scanf("%d",&n);

     if(n<=0 || n>6) return -1;              //行数或列数非法

     p=(int **)malloc(sizeof(int *)*n);  //申请一组一维指针空间

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

     {

          p[i]=(int *)malloc(sizeof(int)*n);  //对于每个一维指针,申请一行数据的空间

     }

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

     {

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

     {

          scanf("%d",&p[i][j]);       //输入第i行第j列的数据。其中&p[i][j]也可以写作p[i]+j或者是 *(p+i) + j

     }

     }

     temp=p[0][0];

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

     {

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

          {

             if(p[i][j]>temp)

              {    

                  temp=p[i][j];   //利用for循环去得到所得的数组中的最大值,并记录其下标

                  r=i,c=j;

              }

          }

     }

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

          free(p[i]);    //逐个释放一维指针上的内存。

     free(p);    //释放二维指针上的内存。              

     printf("%d %d %d",temp,r+1,c+1);  //按照题目要求是说明是第几行和第几列,而不是实际矩阵下标

     return 0;

}


 

0.0分

5 人评分

  评论区

nice
2022-05-26 08:17:13
  • «
  • 1
  • »