我编写了一段代码,其中的输出应该向右移动一点,如:http://imageshack.com/a/img537/9765/7uQXuY.jpg
但我的代码却是这样的:
http://imageshack.com/a/img540/2117/mpK85j.jpg
这是我的代码:
#include <stdio.h>
int main()
{
int n, c, k, space = 1;
char ch='a';
printf(" Enter the size of the diamond:\t");
scanf("%d", &n);
space = n - 1;
for (k = 1; k <= n; k++)
{
for (c = 1; c <= space; c++)
printf(" ");
space--;
ch='`'; /* starting from the Asci code num 096 */
for (c = 1; c <= 2*k-1; c++)
if (c <= k)
{ch++;
printf("%c", ch);
}
else
{
ch--;
printf("%c", ch);}
printf("\n");
}
space = 1;
for (k = 1; k <= n - 1; k++)
{
for (c = 1; c <= space; c++)
printf(" ");
space++;
ch='`';
for (c = 1 ; c <= 2*(n-k)-1; c++)
if (c <= n-k)
{ch++;
printf("%c", ch);
}
else
{
ch--;
printf("%c", ch);}
printf("\n");
}
return 0;
}在这种情况下我该怎么办?我在C语言方面不是很有经验。我试过很多东西,但每次都毁了整个代码。我只成功地移动了第一行!但下面的字母不能移动。另一个问题是:
我如何让数字9--例如,在黑色照片中的数字--出现在右边等于9空格的距离上,如果我放置的数字是4,那么这个数字就会出现在右边的4个空格上?
发布于 2015-04-08 02:33:40
您需要循环for (c = 1; c <= space; c++)将一个' '从1添加到任何space相等的值。你收到的输出与你想要的输出只有一个空格。你可以做两件事:
将space设置为循环前的n:
space = n - 1;变成了
space = n;或者在循环中将c设置为零。
for (c = 0; c <= space; c++)发布于 2015-04-08 02:36:48
为space添加1
for (c = 1; c <= space+1; c++)和
for (c = 1; c <= space+1; c++)输出是

https://stackoverflow.com/questions/29504787
复制相似问题