字符串中的倒三角形

时间:2015-03-23 20:57:52

标签: c string

我对如何从用户输入制作倒三角形感到有点困惑,因此每次都删除最后一个字符,并在每行的前面添加一个空格。所以这就是我现在所拥有的,它应该是正确的,减去空间(我无法以任何理由开始工作)。应该是一个非常简单的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();
    }

2 个答案:

答案 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