戈壁小王 发表于 2021-1-24 22:13:59

萌新c语言自制乘法表,求怎么对齐空格啊啊啊

#include <stdio.h>

int main (void)
{
    int a = 0 ,i,j;

    printf("请输入一个数字\n");
    Start:
    scanf("%d",&a);
    if(a>30)
    {
      printf("数字过大,请重新输入!\n");
      goto Start;
    }
    if(a<1)
    {
      printf("数字不符合要求,请重新输入!\n");
      goto Start;
    }
    printf("   ");

    for(i = 1;i <= a;i++)
    {
      if(i<10)
            printf("%d   ",i);
      else
            printf("%d",i);
    }
    for(i = 1;i <= a;i++)
    {
      printf("\n\n%d ",i);
      for(j = 1;j <= a;j++)
      {
            printf("%d",j*i);
      }
    }
}

万事俱备,只是一个强迫症总是对不齐空格好烦啊啊啊,大家帮忙看下代码,这是一个乘法表,求助怎么能对其所有空格啊???谢谢各位大佬!!!!!

风过无痕1989 发表于 2021-1-24 22:20:21

本帖最后由 风过无痕1989 于 2021-1-24 22:31 编辑

通过运行程序,原来你是想要下面的输出:

#include <stdio.h>

int main(void)
{
        int a = 0, i, j;

        printf("请输入一个数字\n");
Start:
        scanf("%d", &a);
        if (a>30)
        {
                printf("数字过大,请重新输入!\n");
                goto Start;
        }
        if (a<1)
        {
                printf("数字不符合要求,请重新输入!\n");
                goto Start;
        }

        for (i = 1;i <= a;i++)
        {
                for (j = 1;j <= a;j++)
                {
                        printf("%3d ", j*i);
                }
                printf("\n");
        }
}

sunrise085 发表于 2021-1-24 22:26:02

本帖最后由 sunrise085 于 2021-1-24 22:29 编辑

#include <stdio.h>

int main (void)
{
    int a = 0 ,i,j;

    printf("请输入一个数字\n");
    Start:
    scanf("%d",&a);
    if(a>30)
    {
      printf("数字过大,请重新输入!\n");
      goto Start;
    }
    if(a<1)
    {
      printf("数字不符合要求,请重新输入!\n");
      goto Start;
    }
    printf("");

    for(i = 1;i <= a;i++)
    {
      printf("%5d",i);
    }
    for(i = 1;i <= a;i++)
    {
      printf("\n%2d",i);
      for(j = 1;j <= a;j++)
      {
            printf("%5d",j*i);
      }
    }
}

sunrise085 发表于 2021-1-24 22:43:39

在三楼是帮你改掉了你提问的问题
这里帮你再修改一下
C语言程序中最好少用goto语句,比较消耗时间
给你改成循环了
#include <stdio.h>

int main (void)
{
    int a = 0 ,i,j;

    printf("请输入一个数字\n");
    while(a<1 ||a>30)
    {
            scanf("%d",&a);
            if(a>30)
            {
              printf("数字过大,请重新输入!\n");
              continue;
            }
      if(a<1)
              printf("数字不符合要求,请重新输入!\n");
    }
    printf("");

    for(i = 1;i <= a;i++)
    {
      printf("%5d",i);
    }
    for(i = 1;i <= a;i++)
    {
      printf("\n%2d",i);
      for(j = 1;j <= a;j++)
      {
            printf("%5d",j*i);
      }
    }
}

jackz007 发表于 2021-1-25 10:14:58

本帖最后由 jackz007 于 2021-1-25 10:22 编辑

#include <stdio.h>

int main(void)
{
      for(int i = 1 ; i < 10 ; i ++) {
                printf("%d*%d=%2d" , 1 , i , i)                                        ;
                for(int j = 2 ; j < i + 1 ; j ++) printf(" %d*%d=%2d" , j , i , i * j) ;
                printf("\n")                                                         ;
      }
}
      编译、运行实况
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

D:\0002.Exercise\C>

戈壁小王 发表于 2021-1-25 14:30:19

谢谢大佬们!!!
页: [1]
查看完整版本: 萌新c语言自制乘法表,求怎么对齐空格啊啊啊