二维对称矩阵的C语言实现

xiaoxiao2022-06-11  24

#include<stdio.h> #include<stdlib.h> #include<malloc.h> void assign(int a[],int i,int j,int e){ if(i>=j) a[i*(i-1)/2+j-1]=e; else a[j*(j-1)/2+i-1]=e; } int value(int a[],int i,int j){ if(i>=j) return i*(i-1)/2+j-1; else return j*(j-1)/2+i-1; } int main(){ int *array=0,i,j; int N,s,n,k; printf("请输入对称矩阵阶数:\n"); scanf("%d",&N); array=(int*)malloc(sizeof(int)*(N*(N+1)/2)); printf("请输入对称矩阵下三角部分(%d个数):\n",N*(N+1)/2); for(i=1;i<=N;i++) for(j=1;j<=i;j++) { scanf("%d",&n); assign(array,i,j,n); } for(i=1;i<=N;i++){ for(j=1;j<=N;j++){ k=value(array,i,j); printf("= ",array[k]); } printf("\n"); } free(array); system("pause"); return 0; }
转载请注明原文地址: https://www.6miu.com/read-4930300.html

最新回复(0)