鱼C论坛

 找回密码
 立即注册
查看: 2879|回复: 3

行列式问题

[复制链接]
发表于 2022-3-23 10:35:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
首先,萌新报个到
提问:如和将用户输入的行列式
例:1 2 3
       4 5 6
       7 8 9
用递归算法将行列式化为上三角行列式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 11:03:56 From FishC Mobile | 显示全部楼层
啥叫上三角
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-23 11:29:08 | 显示全部楼层

上三角行列式,最长的左上——右下对角线下方都是零
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-23 13:08:40 From FishC Mobile | 显示全部楼层
#include <stdio.h>
#define N 4

void foo(int r, int c, size_t n, int arr[n][n]){
        if(!(r%n) && r) return;
        if((c%n) >= (r%n)) printf("%2d ", arr[r%n][c%n]);
        else printf("%2d ", 0);
        if(!((c+1)%n) && c){
                printf("\n");
                foo(r+1, c+1, n, arr);
        }
        else foo(r, c+1, n, arr);
}

int main(){
        int arr[N][N] = {
                { 1, 2, 3, 4},
                { 5, 6, 7, 8},
                { 9,10,11,12},
                {13,14,15,16}
        };
        
        // ---------------------------------
        printf("普通打印方式:\n");
        for(int r = 0; r < N; r++){
                for(int c = 0; c < N; c++){
                        if(c >= r){
                                printf("%2d ", arr[r][c]);
                        }
                        else{
                                printf("%2d ", 0);
                        }
                }
                printf("\n");
        }

        // ---------------------------------
        printf("\n递归打印方式:\n");
        foo(0, 0, N, arr);
        
        return 0;
}
普通打印方式:
 1  2  3  4 
 0  6  7  8 
 0  0 11 12 
 0  0  0 16 

递归打印方式:
 1  2  3  4 
 0  6  7  8 
 0  0 11 12 
 0  0  0 16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表