师弟1号 发表于 2022-3-23 10:35:11

行列式问题

首先,萌新报个到{:5_109:}
提问:如和将用户输入的行列式
例:1 2 3
       4 5 6
       7 8 9
用递归算法将行列式化为上三角行列式

wp231957 发表于 2022-3-23 11:03:56

啥叫上三角

师弟1号 发表于 2022-3-23 11:29:08

wp231957 发表于 2022-3-23 11:03
啥叫上三角

上三角行列式,最长的左上——右下对角线下方都是零

傻眼貓咪 发表于 2022-3-23 13:08:40

#include <stdio.h>
#define N 4

void foo(int r, int c, size_t n, int arr){
        if(!(r%n) && r) return;
        if((c%n) >= (r%n)) printf("%2d ", arr);
        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 = {
                { 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);
                        }
                        else{
                                printf("%2d ", 0);
                        }
                }
                printf("\n");
        }

        // ---------------------------------
        printf("\n递归打印方式:\n");
        foo(0, 0, N, arr);
       
        return 0;
}普通打印方式:
1234
0678
00 11 12
000 16

递归打印方式:
1234
0678
00 11 12
000 16
页: [1]
查看完整版本: 行列式问题