使用C中的特定数字打印图案

时间:2018-08-19 12:27:12

标签: c

我正在尝试创建一个仅使用1、2和3来生成根据高度打印三角形图案的C程序:

Enter the height:
7
Pattern:
1
22
333
1111
22222
333333
1111111

我只能打印数字,但我不知道如何仅使用1、2和3进行打印

到目前为止,这是我的代码:

printf("Enter the height: \n");
scanf("%d", &height);

if(height <0 || height > 10){
    printf("Please enter height within 1 to 10!");
}
else{
    printf("Pattern: \n");

    for(row=1; row<=height; row++){
        for(int col=1; col<=row; col++){
             printf("%d", row );
        }
        printf("\n");
    }
return 0;
}

输出:

Enter the height:
7
Pattern:
1
22
333
4444
55555
666666
7777777

谢谢

5 个答案:

答案 0 :(得分:3)

只需更改您的打印声明,

printf("%d", (row % 3) > 0 ? row % 3 : 3);

答案 1 :(得分:2)

更改为:

for(row=1; row<=height; row++){
    int num = row%3;
    if(num==0)
        num = 3;
    for(int col=1; col<=row; col++){
         printf("%d", num );
    }
    printf("\n");
}

逻辑:
1.将row的值除以3,得到余数(即执行row % 3)。
2.如果余数为0,则表示行号是3的倍数。因此,打印3s。
3.否则,打印其余部分。

答案 2 :(得分:2)

  

我只能打印数字,但我不知道如何仅使用1、2和3进行打印

这是因为您一直在打印代码中的行号。实现同一件事的方法有很多。

要解决您的问题,您可以拥有一个变量(在下面的程序中为number),并在外部incrementing循环中继续使用for,一旦变量超过{{ 1}},然后将其重置为3

1

或者您可以使用运算符modulus void print_pattern(unsigned height) { unsigned row,number,column; for (row=0, number=1; row < height; row++) { for (column=0; column <= row; column++) printf("%u", number); printf("\r\n"); if (++number > 3) number = 1; } } 。您可以将其应用于%变量(请参见下面的程序)以获取要在特定行上打印的数字。

row

答案 3 :(得分:1)

使用mod操作%.. (数字%4)介于0和3之间。 因为您想要从1到3,然后取(number%3 + 1)..

printf("Enter the height: \n");
scanf("%d", &height);

if(height <0 || height > 10){
   printf("Please enter height within 1 to 10!");
}
 else{
  printf("Pattern: \n");

  for(row=1; row<=height; row++){
      for(int col=1; col<=row; col++){
         printf("%d", (row%3)+1 );
    }
    printf("\n");
   }
 return 0;
}

答案 4 :(得分:1)

#include<stdio.h>
#include<conio.h>

int main(){

    int n; int l=1;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        int j=i;
        while(j!=0){
            printf("%d",l);

            j--;
        }
         l++;
            if(l==4){
                l=1;
            }
       printf("\n");    
    }



}