夜蚀天 发表于 2022-1-11 17:08:04

求助

给出n(1≤n≤13),请输出一个直角边长度是 n 的数字直角三角形。所有数字都是 2 位组成的,如果没有 2 位则加上前导 0。
#include <stdio.h>
int main()
{
        int n,i,j,b=1;
        scanf("%d", &n);
        for (i = n; i >0; i--)
        {
                for (j = i;j>0;j--)
                {
                        if (b<10)
                        {
                                printf("0%d", b);
                                b++;
                        }
                        if(b>=10)
                        {
                                printf("%d", b);
                                b++;
                        }
                }
                printf("\n");
        }
        return 0;
}
我输入5,结果第一第二行都是5个数字,如果正常的话应该是
0102030405
06070809
101112
1314
15

大马强 发表于 2022-1-11 17:21:51

别用两个if单独判断,当循环到9时,打印后就变成10,然后下一个if判断就成立了,多打印了一次
#include <stdio.h>
int main()
{
      int n,i,j,b=1;
      scanf("%d", &n);
      for (i = n; i >0; i--)
      {
                for (j = i;j>0;j--)
                {
                        if (b<10)
                        {
                              printf("0%d", b);
                              b++;
                        }
                        else
                        {
                              printf("%d", b);
                              b++;
                        }
                }
                printf("\n");
      }
      return 0;
}

大马强 发表于 2022-1-11 17:22:31

5
0102030405
06070809
101112
1314
15

傻眼貓咪 发表于 2022-1-11 17:43:05

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    for(int i = n, a = 1; i > 0; i--, a += i+1){
      for(int j = a; j < a+i; j++) printf("%02d", j);
      printf("\n");
    }
    return 0;
}
页: [1]
查看完整版本: 求助