第九周项目2 对称矩阵压缩存储的实现与应用1

来源:互联网 发布:离心泵选型软件 编辑:程序博客网 时间:2024/04/28 17:50
#include <stdio.h>#include <malloc.h>#define N 4void Init(int *&b);void Assign(int b[], int e, int i, int j);void Disp(int b[]);void Destroy(int b[]);int main(){    int *b1;      int i, j;    int v;    Init(b1);    printf("请输入对称矩阵(只需要输入下三角部分即可)\n");    for(i=0; i<N; i++)    {        printf("输入第%d行的%d个数据元素: ", i+1, i+1);        for(j=0; j<=i; j++)        {            scanf("%d", &v);            Assign(b1, v, i, j);        }    }    Disp(b1);    Destroy(b1);    return 0;}void Init(int *&b){    b=(int *)malloc(sizeof(int)*N*(N+1)/2);}void Assign(int b[], int e, int i, int j){    int k;    if(i>j)    {        k=i*(i+1)/2+j;        b[k]=e;    }    else if(i<=j)    {        k=j*(j+1)/2+i;        b[k]=e;    }}void Disp(int b[]){    int i=0;    int j=0;    while(i<N)    {        while(j<N)        {            printf("%4d",b[i*(i+1)/2+j]);            j++;        }        printf("\n");        j=0;        i++;    }}void Destroy(int b[]){    free(b);}

0 0