数据结构实验十——对称矩阵

#include <stdio.h>
#include <stdlib.h>
#define M 10
#define N 4
int main()
{
    int a[M]={1,2,3,4,5,6,7,8,9,10};
    int b[M]={1,1,1,1,1,1,1,1,1,1};
    int c[N][N],d[N][N];
    int i,j,k=0,s;
    for(i=0;i<N;i++)
        for(j=0;j<=i;j++)
        {
            c[i][j]=a[k];
            d[i][j]=b[k];
            k++;
        }
    for(i=0;i<N-1;i++)
        for(j=i+1;j<N;j++)
        {
            c[i][j]=c[j][i];
            d[i][j]=d[j][i];
        }
    printf("1、输出对称矩阵M:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N-1;j++)
            printf("%d ",c[i][j]);
        printf("%d\n",c[i][j]);
    }
    printf("2、输出对称矩阵N:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N-1;j++)
            printf("%d ",d[i][j]);
        printf("%d\n",d[i][j]);
    }
    printf("3、两个对称矩阵M、N的和为:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N-1;j++)
            printf("%d ",c[i][j]+d[i][j]);
        printf("%d\n",c[i][j]+d[i][j]);
    }
    printf("3、两个对称矩阵M、N的积为:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N-1;j++)
        {
            s=0;
            for(k=0;k<N;k++) s+=c[j][k]*d[k][j];
            printf("%d ",s);
        }
        s=0; for(k=0;k<N;k++) s+=c[j][k]*d[k][j];
        printf("%d\n",c[i][j]+d[i][j]);
    }
    return 0;
}

posted on 2015-01-26 21:31  赛亚人  阅读(535)  评论(0编辑  收藏  举报