【问题标题】:How to printf multiple # [duplicate]如何打印多个# [重复]
【发布时间】:2014-06-06 17:51:05
【问题描述】:

我需要制作一个程序,用#'s 打印x 宽度和y 高度的正方形。 如何打印多个#?

{
    while (ysize > 0)

    {
        printf("%0*%d\n", xsize,0);
        ysize--;
    }

}

这会打印多个 0,但我如何让它打印多个 #?

E:得到它的工作感谢您的帮助... 答案是:

    while(ysize >0)
{
int i;
for(i=0;i<xsize;i++){
    putchar('#');
}
putchar('\n');
ysize--;

}

【问题讨论】:

  • “我如何打印多个#”是什么意思?这里真的不清楚。你想要一些'0'吗?你想要 N 个不同的数字吗?请说明您的要求。

标签: c printing printf


【解决方案1】:

您可以使用打印出大小为 x 的行的函数,然后调用该函数 y 次。

void printline(int size){
    int i;
    for(i=0;i<size;i++){
        putchar('#');
    }
    putchar('\n');
}

此函数在一行中打印 x #s,然后将光标移动到下一行。

【讨论】:

    【解决方案2】:

    我认为您的格式字符串中有一个额外的%

    这个:

    printf("%0*d\n", xsize, 0);
    

    应该打印xsize0s。存在此功能是因为将前导零填充的数字打印到指定宽度很有用。您还可以使用前导空格填充,因为这是另一种常用的数字输出格式。

    printf 中没有内置这样的功能来打印多个 # 字符。

    您只需要编写一个循环来一次打印一个# 字符。或者您可以构建一个包含# 字符的字符串并打印整个字符串,但循环可能更容易。

    【讨论】:

      【解决方案3】:

      你没有指定你想要的是否是一个实心正方形,所以下面的代码示例打印两者。

      #include <stdio.h>
      
      int main()
      {
          char SHARP = '#';
          int x = 10, y = 10; 
      
          /* For printing a filled sqaure */
      
          for (int i = 0; i < x; i++)
          {
              for (int j = 0; j < y; j++)
                  printf("#");
              printf("\n");
          }
      
      
          /* For printing a non-filled squere */
          printf("\n\n"); // Just adding tow lines between sqares.
      
          for (int i = 0; i < x; i++)
          {
              for (int j = 0; j < y; j++)
              if (j == 0 || j == y - 1 || i == 0 || i == x - 1)
                  printf("#");
              else
                  printf(" ");
              printf("\n");
          }
      
          return 0;
      }
      

      输出将是:

      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      ##########
      
      
      ##########
      #        #
      #        #
      #        #
      #        #
      #        #
      #        #
      #        #
      #        #
      ##########
      

      【讨论】:

        猜你喜欢
        • 2020-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-16
        相关资源
        最近更新 更多