m0_74841622 2022-11-03 11:33 采纳率: 60%
浏览 68
已结题

输入m×n矩阵并排序各列元素和各列

实现对输入m×n矩阵的排序,遵循如下规则:
(1)首先将矩阵内每一列的元素值,按照从小到大的顺序排列;
(2)然后将矩阵的各个列按照该列元素之和从小到大的顺序排列,并将排序后的矩阵输出。 如果某些列元素和相同,则按原来顺序排列。
要求:编写函数order(int m, int n, int *matrix),m和n分别为矩阵的行数和列数,matrix为存放矩阵元素的数组(一维或二维均可)
我先写了列元素排序的函数,但是好多错误,怎么改正

#include <stdio.h>
#include <algorithm>
using namespace std;
int main () {
    int n,m,j,k,str[100][100],(*p)[100];
    p=str;
    void  order(int m, int n, int *str);
        scanf("%d %d",&m,&n);
    
        for(j=0; j<m; j++){
            for(k=0; k<n; k++) {
                scanf("%d",*(p+j)+k);}}
                

    order(m,n,*p);
    return 0;
}
 void order(int m, int n, int *str){
     int j,k,sum[100]={0};
    
      for (int j=0;j<n;j++) sort(str[j],str[j]+m);
       for(j=0; j<m; j++){
               for(k=0; k<n; k++){
                printf("%d",*(*(&str+j)+k));
            }    
            printf("\n");
        }
      
               return ;}
  • 写回答

1条回答 默认 最新

  • wwc2017 2022-11-03 15:05
    关注

    问题确实挺多的,一个个都帮你指出来挺麻烦的,我先说一下关键的问题吧
    题目说“matrix为存放矩阵元素的数组(一维或二维均可)”,那我就当参数int* matrix的类型可以修改
    函数order(int m, int n, int* matrix),matrix如果是一级指针,说明是想通过一维数组的方式来表示一维和二维数组,实际上二维数组的存储方式就是把每一行按顺序放在一维数组里,所以可以用一维数组来表示二维矩阵。
    如果matrix改用二级指针,例如你这里定义的str[100][100],那么函数order应该为order(int m, int n, int* matrix[100]),这样改对你来说改动最小。如果题目不允许修改matrix参数的类型,那就要大改。下面只说能修改成int* matrix[100]类型以后的错误

            for(j=0; j<m; j++){
                   for(k=0; k<n; k++){
                    printf("%d",*(*(&str+j)+k));
                }    
                printf("\n");
            }
    

    这里的&str就没有必要了,改为

    printf("%d",*(*(str+j)+k));
    

    以及main函数中的order(m,n,* p);改为order(m,n,p);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月3日

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值