m0_63999697 2021-12-24 11:35 采纳率: 93.5%
浏览 106
已结题

矩阵规范化。怎么改(语言-c语言)

问题描述
有一种矩阵规范化是这样做的:先找出矩阵的每一行中的最大值,然后每行的每个元素分别除该行的最大值。

要求写一个函数实现矩阵的规范化,在函数中使用指针。

输入
只有一组测试用例。 输入第一行是两个整数m(小于50)和n(小于50),分别表示矩阵的行数与列数。接下来m行,每行n个浮点数,之间用空格分开。

输出
输出规范化后的矩阵,所有元素保留2位小数。总共m行,每行n个浮点数。之间用空格分开,注意每行最后一个元素后面没有空格。

输入样列
3 3
1 2 3
4 5 6
7 8 9

#include<stdio.h>
int main()
{
    int n,m,x,y;
    int i,j;
    scanf("%d %d",&n,&m);
    double max[n];
    double a[n][m];
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<n;i++){
        max[i]=a[i][0];
        for(j=0;j<m;j++){
            if(a[i][j]>max[i]){
                max[i]=a[i][j];
            }
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            a[i][j]=a[i][j]/max[i];
            printf("%.2f ",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

输出的第一行会出错

  • 写回答

1条回答 默认 最新

  • a5156520 2021-12-24 12:15
    关注

    把第二个scanf读取n行m列那个的%d改为%lf,因为是读取double类型浮点数。
    然后同样打印%.2f也改为%.2lf,就可以了。

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

报告相同问题?

问题事件

  • 系统已结题 1月3日
  • 已采纳回答 12月26日
  • 修改了问题 12月24日
  • 修改了问题 12月24日
  • 展开全部

悬赏问题

  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做