我对如何从用户输入制作倒三角形感到有点困惑,因此每次都删除最后一个字符,并在每行的前面添加一个空格。所以这就是我现在所拥有的,它应该是正确的,减去空间(我无法以任何理由开始工作)。应该是一个非常简单的for循环,但我无法弄清楚我的生活。
以下是现在运行时的样子:
Enter a string: EXAMPLE
E X A M P L E
E X A M P L
E X A M P
E X A M
E X A
E X
E
以及我希望它看起来像:
Enter a string: EXAMPLE
E X A M P L E
E X A M P L
E X A M P
E X A M
E X A
E X
E
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
char string[100];
int c, k, length;
printf("Enter a string: ");
gets(string);
length = strlen(string);
printf("\n");
for(c=length; c>0; c--)
{
for(k=0; k<c; k++)
{
printf("%c ", string[k]);
}
printf("\n");
}
getch();
}
答案 0 :(得分:0)
每次只需插入越来越多的空格(即printf
空格k
次)。
答案 1 :(得分:0)
您只需在打印每行之前添加length - c
空格,因为您必须打印的字符越少,您需要插入的空格越多:
#include <stdio.h>
#include <string.h>
int main()
{
char string[100];
int c, k, length;
printf("Enter a string: ");
gets(string);
length = strlen(string);
printf("\n");
for(c=length; c>0; c--)
{
//Add some spaces
for(k=0; k < length - c ; k++)
{
printf(" ");
}
for(k=0; k<c; k++)
{
printf("%c ", string[k]);
}
printf("\n");
}
return 0;
}
SAMPLE STRING
的示例:
Enter a string: SAMPLE STRING
S A M P L E S T R I N G
S A M P L E S T R I N
S A M P L E S T R I
S A M P L E S T R
S A M P L E S T
S A M P L E S
S A M P L E
S A M P L E
S A M P L
S A M P
S A M
S A
S