C語言練習-二維數組/矩陣

1.二維數組初試

#include <stdio.h>
int main( )
{
    int i,j;

    int a[5][4]= {{0,1},{4,5},{8,9},{12,13},{16,17}};           //创建数组,为数组中的前两列的10个元素赋初值

    printf("Enter ten integer number: \n");                              //键盘输入后两列10个元素的值
    for(i=0;i<5;i++)
    {
        for(j=2;j<4;j++)
            scanf("%d",&a[i][j]);
    }
    printf("the value in rows : \n");                                //按行序优先输出
    for(i=0;i<5;i++)
    {
        for(j=0;j<4;j++)
            printf("%5d",a[i][j]);
        printf("\n");
    }
    printf("Multi three times : \n");                         //将所有元素值乘以3后保存在数组中
    for(i=0;i<5;i++)
    {
        for(j=0;j<4;j++)
        {
            a[i][j] *= 3;
            printf("%5d",a[i][j]);
        }
        printf("\n");
    }
    printf("In row **** : \n");                                //按行序优先输出
    for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {
            printf("%5d",a[j][i]);
        }

        printf("\n");
    }
    printf("even number : \n");                                //输出数组中的所有偶数
    for(i=0;i<5;i++)
    {
        for(j=0;j<4;j++)
        {
            if(a[i][j]%2==0)
                printf("%5d \n",a[i][j]);
        }
    }
    printf(" i+j is 3 times : \n");                 //输出所有行列下标之和为3的倍数的元素值
    for(i=0;i<5;i++)
    {
        for(j=0;j<4;j++)
        {
            if((i+j)%3==0)
                printf("%5d \n",a[i][j]);
        }
    }
    return 0;
}

2.矩陣加法


#include <stdio.h>

int main( )
{
    int mx1[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
    int mx2[4][3]={{10,20,30},{40,50,60},{70,80,90},{100,110,120}};
    int mx3[][3]={0};
    int c,d;
    for(c=0;c<4;c++)
    {
        for(d=0;d<3;d++)
            mx3[c][d]=mx1[c][d] + mx2[c][d];
    }
    for(c=0;c<4;c++)
    {
        for(d=0;d<3;d++)
            printf("%5d",mx3[c][d]);
        printf("\n");
    }
    return 0;
}

3.矩陣乘法


#include <stdio.h>

int main( )
{
    int mx1[2][3]={{1,1,0},{2,0,3}};
    int mx2[3][4]={{0,2,3,1},{1,0,2,2},{2,1,1,1}};
    int mx3[2][4]={0};
    int c,d,k;
    for(c=0;c<2;c++)
    {
        for(d=0;d<4;d++)
        {
            for(k=0;k<3;k++)
                mx3[c][d] +=mx1[c][k]*mx2[k][d];  //累加,乘積的和
        }

    }
    for(c=0;c<2;c++)
    {
        for(d=0;d<4;d++)
            printf("%5d",mx3[c][d]);
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_38486169/article/details/86612051