注册 登录
编程论坛 C语言论坛

如何指定用户输入数组的行和列

郭阳yang 发布于 2020-11-17 10:49, 1667 次点击
输入两个整数m,n,分别按如下规律打印m行n列的数字图形
例如下面的(14)
只有本站会员才能查看附件,请 登录
5 回复
#2
xianfajushi2020-11-17 11:51

    int m = 4, n = 4, x = 0, jz[4][4] = { 0 };
    while (m){ if (n)jz[4 - m][4 - n--] = ++x; else --m, n = 4; }
    m = n = 4; x = 0;
    while (n)if (m)jz[4 - m--][4 - n] = ++x; else --n, m = 4;
    int jz1[4][4] = { 0 }; m = n = 4; x = 0;
    while (m)if (m>n)--m, n = 4; else jz1[4 - m][4 - n--] = ++x;
#3
rjsp2020-11-17 13:10
哎,我连题目都看不懂。
比如 m=2, n=10,那么第一个图形应该是什么样子?
比如 m=10, n=2,那么第一个图形应该是什么样子?
#4
风过无痕19892020-11-17 13:13
回复 楼主 郭阳yang
程序代码:

#include<stdio.h>
int main()
{
    int i,j, k = 1,m,n;
    scanf("%d%d", &m,&n);
    for (i = 1;i <= m;i++)
    {
        for (j = 1;j <= i;j++)
        {
            printf("%2d ", k);
            k++;
        }
        printf("\n");
    }

    printf("\n");
    k = 1;
    for (i = 1;i <= m;i++)
    {
        for (j = 1;j <= n;j++)
        {
            printf("%2d ", k);
            k += 4;
        }
        printf("\n");
        k -= 15;
    }
   
    printf("\n");
    k = 1;
    for (i = 1;i <= m;i++)
    {
        for (j = 1;j <= n;j++)
        {
            printf("%2d ", k);
            k += 1;
        }
        printf("\n");

    }
    return 0;
}
#5
郭阳yang2020-11-17 18:33
回复 4楼 风过无痕1989
要是用数组呢
#6
风过无痕19892020-11-17 19:09
回复 5楼 郭阳yang
用数组,看你怎么个用法,人为地将各元素输入到指定位置,与我这样也差不多,若是随机输入,然后通过数组的运算,调到指定位置,再输入,就复杂的多。
好在这个题目并没有要求要用数组
1