[英]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.