【发布时间】:2016-12-24 15:43:48
【问题描述】:
我需要构建一个程序,请求用户插入一个句子 比如“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');
}
}
我的错误在哪里?我该如何解决? 谢谢。
【问题讨论】:
-
您需要使用二维数组吗?您可以通过使用长度为 2P 的单个数组来实现 O(P) 空间复杂度。