打印数组的右上三角部分(C)

/* 计算数组  比如[1,2,3,4]
                [2,3,4,5]
                [2,1,3,4]
                [1,2,3,4]
            让这个数组的右上三角的元素乘以一个数
            变成[1*a,   2*a,   3*a,    4*a]
                [2,     3*a,   4*a,    5*a]
                [2,     1,     3*a,    4*a]
                [1,     2,      3,     4*a]
*/
#include<stdio.h>
#include<stdlib.h>
#define N 5

// multiply a number
void fun(int (*a)[N], int m)
{
    for(int i=0;i<N;i++)
    {
        for(int j=N-1;j>=i;j--)
        {
            a[i][j] *= m;
        }
    }
}

// print the array
void printFunction(int (*a)[N])
{
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<N;j++)
        {
            printf("%4d",a[i][j]);
        }
        printf("\n");
    }

}

int main()
{
    int a[N][N], m , i, j;
    for(i=0; i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            a[i][j] = rand()%20;
            printf("%4d",a[i][j]);   
        }
    printf("\n");
    }
    printf("\n");
    m = rand()%4;
    fun(a,m);
    printFunction(a);
    return 0;
}

//conclusion  结合九九乘法表的各种打印方式来理解

 

posted @ 2020-03-15 19:12  看星星的派大星  阅读(478)  评论(0编辑  收藏  举报