繁体   English   中英

以升序(C)将1D数组输入2D数组

[英]input 1D array into 2D array in increasing order (C)

我需要构建一个程序,要求用户插入诸如“ Hello World”之类的句子

然后把这句话输入一维数组

然后从那里输入2D数组,将按此顺序显示他的句子:

Hello!! :)
)Hello!! :
:)Hello!! 
 :)Hello!!
! :)Hello!
!! :)Hello
o!! :)Hell
lo!! :)Hel
llo!! :)He
ello!! :)H

我完成了大部分工作,但我不能完全做到这一点,我的意思是说我现在的句子在减少而没有增加

我的代码:

#include <stdio.h>
#define P 10
int main(int argc, const char * argv[])
{
    char array1[P][P];
    char array2[P];
    int i, j;

    for (i = 0; i<P; i++) //fill the array with the chars.
    {
        scanf("%c", &array2[i]);
    }

    for (i=0 ; i<P ; i++)
    {
        for (j=0 ; j<P ; j++)
        {
            array1[i][j] = array2[j+i];
        }
    }

    for (i=0 ; i<P ; i++)
    {
        for (j=0 ; j<P ; j++)
        {
            printf("%c", array1[i][j]);
        }
        putchar('\n');
    }

}

我的错误在哪里? 以及我该如何解决? 谢谢。

array1[i][j] = array2[j+i]; 应该是array1[i][j] = array2[(j+Pi)%P];

在输入array1代码中,外循环的第一次运行是正确的,但第二次是在array1[1][0]=array2[1];处插入值array1[1][0]=array2[1]; 表示array2第二个元素,所以使用这个

array1[i][j] = array2[(j+P-i)%P];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM