鱼C论坛

 找回密码
 立即注册
查看: 1917|回复: 5

[已解决]萌新c语言自制乘法表,求怎么对齐空格啊啊啊

[复制链接]
发表于 2021-1-24 22:13:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include <stdio.h>

  2. int main (void)
  3. {
  4.     int a = 0 ,i,j;

  5.     printf("请输入一个数字\n");
  6.     Start:
  7.     scanf("%d",&a);
  8.     if(a>30)
  9.     {
  10.         printf("数字过大,请重新输入!\n");
  11.         goto Start;
  12.     }
  13.     if(a<1)
  14.     {
  15.         printf("数字不符合要求,请重新输入!\n");
  16.         goto Start;
  17.     }
  18.     printf("   ");

  19.     for(i = 1;i <= a;i++)
  20.     {
  21.         if(i<10)
  22.             printf("%d   ",i);
  23.         else
  24.             printf("%d  ",i);
  25.     }
  26.     for(i = 1;i <= a;i++)
  27.     {
  28.         printf("\n\n%d ",i);
  29.         for(j = 1;j <= a;j++)
  30.         {
  31.             printf("  %d",j*i);
  32.         }
  33.     }
  34. }
复制代码

万事俱备,只是一个强迫症总是对不齐空格好烦啊啊啊,大家帮忙看下代码,这是一个乘法表,求助怎么能对其所有空格啊???谢谢各位大佬!!!!!
最佳答案
2021-1-24 22:43:39
在三楼是帮你改掉了你提问的问题
这里帮你再修改一下
C语言程序中最好少用goto语句,比较消耗时间
给你改成循环了
  1. #include <stdio.h>

  2. int main (void)
  3. {
  4.     int a = 0 ,i,j;

  5.     printf("请输入一个数字\n");
  6.     while(a<1 ||a>30)
  7.     {
  8.             scanf("%d",&a);
  9.             if(a>30)
  10.             {
  11.                 printf("数字过大,请重新输入!\n");
  12.                 continue;
  13.             }
  14.         if(a<1)
  15.                 printf("数字不符合要求,请重新输入!\n");
  16.     }
  17.     printf("  ");

  18.     for(i = 1;i <= a;i++)
  19.     {
  20.         printf("%5d",i);
  21.     }
  22.     for(i = 1;i <= a;i++)
  23.     {
  24.         printf("\n%2d",i);
  25.         for(j = 1;j <= a;j++)
  26.         {
  27.             printf("%5d",j*i);
  28.         }
  29.     }
  30. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-24 22:20:21 | 显示全部楼层
本帖最后由 风过无痕1989 于 2021-1-24 22:31 编辑

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

  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         int a = 0, i, j;

  5.         printf("请输入一个数字\n");
  6. Start:
  7.         scanf("%d", &a);
  8.         if (a>30)
  9.         {
  10.                 printf("数字过大,请重新输入!\n");
  11.                 goto Start;
  12.         }
  13.         if (a<1)
  14.         {
  15.                 printf("数字不符合要求,请重新输入!\n");
  16.                 goto Start;
  17.         }

  18.         for (i = 1;i <= a;i++)
  19.         {
  20.                 for (j = 1;j <= a;j++)
  21.                 {
  22.                         printf("%3d ", j*i);
  23.                 }
  24.                 printf("\n");
  25.         }
  26. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-24 22:26:02 | 显示全部楼层
本帖最后由 sunrise085 于 2021-1-24 22:29 编辑
  1. #include <stdio.h>

  2. int main (void)
  3. {
  4.     int a = 0 ,i,j;

  5.     printf("请输入一个数字\n");
  6.     Start:
  7.     scanf("%d",&a);
  8.     if(a>30)
  9.     {
  10.         printf("数字过大,请重新输入!\n");
  11.         goto Start;
  12.     }
  13.     if(a<1)
  14.     {
  15.         printf("数字不符合要求,请重新输入!\n");
  16.         goto Start;
  17.     }
  18.     printf("  ");

  19.     for(i = 1;i <= a;i++)
  20.     {
  21.         printf("%5d",i);
  22.     }
  23.     for(i = 1;i <= a;i++)
  24.     {
  25.         printf("\n%2d",i);
  26.         for(j = 1;j <= a;j++)
  27.         {
  28.             printf("%5d",j*i);
  29.         }
  30.     }
  31. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-24 22:43:39 | 显示全部楼层    本楼为最佳答案   
在三楼是帮你改掉了你提问的问题
这里帮你再修改一下
C语言程序中最好少用goto语句,比较消耗时间
给你改成循环了
  1. #include <stdio.h>

  2. int main (void)
  3. {
  4.     int a = 0 ,i,j;

  5.     printf("请输入一个数字\n");
  6.     while(a<1 ||a>30)
  7.     {
  8.             scanf("%d",&a);
  9.             if(a>30)
  10.             {
  11.                 printf("数字过大,请重新输入!\n");
  12.                 continue;
  13.             }
  14.         if(a<1)
  15.                 printf("数字不符合要求,请重新输入!\n");
  16.     }
  17.     printf("  ");

  18.     for(i = 1;i <= a;i++)
  19.     {
  20.         printf("%5d",i);
  21.     }
  22.     for(i = 1;i <= a;i++)
  23.     {
  24.         printf("\n%2d",i);
  25.         for(j = 1;j <= a;j++)
  26.         {
  27.             printf("%5d",j*i);
  28.         }
  29.     }
  30. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-25 10:14:58 | 显示全部楼层
本帖最后由 jackz007 于 2021-1-25 10:22 编辑
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         for(int i = 1 ; i < 10 ; i ++) {
  5.                 printf("%d*%d=%2d" , 1 , i , i)                                        ;
  6.                 for(int j = 2 ; j < i + 1 ; j ++) printf(" %d*%d=%2d" , j , i , i * j) ;
  7.                 printf("\n")                                                           ;
  8.         }
  9. }
复制代码

        编译、运行实况
  1. D:\0002.Exercise\C>g++ -o x x.c

  2. D:\0002.Exercise\C>x
  3. 1*1= 1
  4. 1*2= 2 2*2= 4
  5. 1*3= 3 2*3= 6 3*3= 9
  6. 1*4= 4 2*4= 8 3*4=12 4*4=16
  7. 1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
  8. 1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
  9. 1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
  10. 1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
  11. 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

  12. D:\0002.Exercise\C>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-1-25 14:30:19 | 显示全部楼层
谢谢大佬们!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 07:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表