代码之家  ›  专栏  ›  技术社区  ›  sdrawkcaB

不显示空格

  •  -1
  • sdrawkcaB  · 技术社区  · 4 年前

    我对c++和所有东西都很陌生。我不明白为什么我的代码不起作用:

    #include <cstdio>
    
    int main(){
     
    int a;
    
    scanf("%d", &a);
    
    for(int i = 1; i < a; i++){
     printf(" ");
    
    }
    
    printf("*");
    
    }
    

    我想做的是将空格数作为用户输入的值减去,然后在末尾加上一个*,如果a=10:

         *
    

    但当我尝试时,空间不会显示出来。 理想情况下,我要做的是获得如下输出:

       *
      **
     ***
    ****
    

    长度取决于用户输入,如果是10,那么空格将是9,最后的*将是第十个。

    1 回复  |  直到 4 年前
        1
  •  1
  •   Tanmay Kumar    4 年前

    对于句法部分:

    1. scanf("%d" &a); 应该是 scanf("%d", &a);

    说明: 缺少逗号(,)

    1. print(" ") 应该是 printf(" ");

    说明: print 应该是 printf 和缺少分号(;)

    1. print("*") 应该是 printf("*");

    说明: 打印 应该是 打印F 和缺少分号(;)

    1. 最后尝试包括 return 0; 在中的每个代码末尾 main() 作用

    对于逻辑部分: 必须使用3表示循环(其中两个嵌套在一个循环中)。每行的父for循环。嵌套的两个表示空间和星星。

    #include <cstdio>
    int main()
    {
    
        int a;
    
        scanf("%d", &a);
    
        for(int i=1; i<a; i++)
        {
            for(int j=i; j<a; j++)
                printf(" ");
            for(int k=0; k<i; k++)
                printf("*");
    
            printf("\n");
        }
        return 0;
    }
    

    如果将a的值设为5,即a=5,则将获得所需的输出。

    要了解更多详细信息,请访问以下链接 star patterns in c

    您的代码可能包含许多错误。这是可以理解的,因为您需要新的C/C++。尝试在中解决问题 beecrowd 以更好的方式学习。随着您的进步,这些错误将一天天自动消失。但秘诀是练习,永不放弃。祝你好运