【问题标题】:Please help me to correct the code in C program请帮我更正C程序中的代码
【发布时间】:2022-01-14 09:02:26
【问题描述】:

必须与第二张图片完全相同。我尝试将 \t 放在 1 之前,但它不起作用,我也无法在乘法表之后键入 --------------。

int main(int argc, char* argv)
{
    puts("| 1 2 3 4 5 6 7 8 9 ");
    puts("-------------------------------------");

    for (int x = 1; x <= 9; x++)
    {
        for (int y = 1; y <= 9; y++)
        {
            if (y < x)
            {
                printf("    ");
            }
            else
            {
                if (y < 10)
                {
                    printf("%4d",x*y);
                }
                else
                {
                    printf("%6d",x*y);
                }
            }
        }

        puts("");
    }
}

【问题讨论】:

  • 请提供代码和输出格式的文本,而不是图片。另请提供与您的输出实际匹配的代码。
  • 您的标题每个数字只需 2 个字符。为什么要使用%4d 打印?为什么你还要使用%6d 来获取更大的数字?如果你想对齐,你应该从一开始就取较大的间隙。而且你永远不会打印\n

标签: c loops multiplication


【解决方案1】:

你可能想要这个:

#include <stdio.h>

int main(int argc, char* argv)
{
  puts("|  1   2   3   4   5   6   7   8   9 ");  // change this line
  puts("-------------------------------------");

  for (int x = 1; x <= 9; x++)
  {
    for (int y = 1; y <= 9; y++)
    {
      if (y < x)
      {
        printf("    ");
      }
      else
      {
        if (y < 10)
        {
          printf("%4d", x * y);
        }
        else
        {
          printf("%6d", x * y);
        }
      }
    }

    puts("");
  }
  puts("\n-------------------------------------");  // add this line
}

【讨论】:

    【解决方案2】:

    无需检查if (y &lt; 10),因为您只是将 y 从 1 循环到 9。

    #include <stdio.h>
    
    int main(int argc, char* argv)
    {
        puts("  1  2  3  4  5  6  7  8  9");
        puts("--------multiplication table----");
    
        for (int x = 1; x <= 9; x++)
        {
            for (int y = 1; y <= 9; y++)
            {
                if (y < x)
                {
                    printf("   ");
                }
                else
                {
                    printf("%3d",x*y);
                }
            }
    
            puts("");
        }
        puts("-------------------------------");
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 2011-05-03
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 2013-12-22
      相关资源
      最近更新 更多