行列式问题
首先,萌新报个到{:5_109:}提问:如和将用户输入的行列式
例:1 2 3
4 5 6
7 8 9
用递归算法将行列式化为上三角行列式 啥叫上三角 wp231957 发表于 2022-3-23 11:03
啥叫上三角
上三角行列式,最长的左上——右下对角线下方都是零 #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]