c - 打印星形或 "X"图案

标签 c loops

请帮我完成作业。 我想使用循环 C 语言生成这样的模式

X X X
 XXX 
XXXXX
 XXX
X X X

XXXXX
X   X
X   X
X   X
XXXXX

X
XX
X X
X  X
XXXXX

    X
   XX
  X X
 X  X
XXXXX

这是我的代码

#include <stdio.h>

int main()
{
for(int i=1;i<=26;i++){
    if(i==1){
        for(int a = 1;a<=5;a++){
            if(a==1 || a==3 || a==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==2){
        for(int b = 1;b<=5;b++){
            if(b==2 || b==3 || b==4){
                printf("X");
            }
            else{
                printf(" ");
            }
        }
    }
    else if(i==3){
        for(int c = 1;c<=5;c++){
            printf("X");
        }  
    }
    else if(i==4){
        for(int d = 1;d<=5;d++){
            if(d==2 || d==3 || d==4){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==5){
        for(int e = 1;e<=5;e++){
            if(e==1 || e==3 || e==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==8){
        for(int f = 1;f<=5;f++){
            printf("X");
        }  
    }
    else if(i==9){
        for(int g = 1;g<=5;g++){
            if(g==1|| g==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==10){
        for(int h = 1;h<=5;h++){
            if(h==1|| h==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==11){
        for(int jtmp = 1;jtmp<=5;jtmp++){
            if(jtmp==1|| jtmp==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==12){
        for(int f = 1;f<=5;f++){
            printf("X");
        }  
    }
    else if(i==15){
        for(int k = 1;k<=5;k++){
            if(k==1){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==16){
        for(int l = 1;l<=5;l++){
            if(l==1 || l==2){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==17){
        for(int m = 1;m<=5;m++){
            if(m==1 || m==3){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==18){
        for(int n = 1;n<=5;n++){
            if(n==1 || n==4){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==19){
        for(int o = 1;o<=5;o++){
            printf("X");
        }  
    }
    else if(i==22){
        for(int p = 1;p<=5;p++){
            if(p==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==23){
        for(int q = 1;q<=5;q++){
            if(q==4 || q==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==24){
        for(int r = 1;r<=5;r++){
            if(r==3 || r==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==25){
        for(int s = 1;s<=5;s++){
            if(s==2 || s==5){
                printf("X");
            }
            else{
                printf(" ");
            }
        }  
    }
    else if(i==26){
        for(int t = 1;t<=5;t++){
            printf("X");
        }  
    }
    else{
        printf("\n");
    }
    printf("\n");
}
}

但是我的代码这么长并不简单,因为我是新手 但我想要使用这样的方法的简单代码

#include <stdio.h> 

int main()
{
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 5; j++) {
                if (j == 1 || j == 5 || i == 1 || i == 5)
                    printf("X");
                else
                    printf(" ");
            }
            printf("\n");
        }

    return 0;
}

输出:

XXXXX
X   X
X   X
X   X
XXXXX

最佳答案

您确实会从使用函数中受益。在主程序之前为每个形状声明一个函数,例如

function square()
{
       for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= 5; j++) {
                if (j == 1 || j == 5 || i == 1 || i == 5)
                    printf("X");
                else
                    printf(" ");
            }
            printf("\n");
        }

    return 0;
}

现在您可以在主程序中编写:-

main()
{
 square();
 square();
 triangle();
 star();
 triangle();

 return 0;
}

完成后,请阅读参数。然后你就可以写:-

main()
{
 square(2);
 triangle(1);
 star(1);
 triangle(1);

 return 0;
}

做完全相同的事情。呵呵...方(128);应该很有趣;)

关于c - 打印星形或 "X"图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56088230/

相关文章:

c - 将标准输出和标准错误重定向到系统日志

c - 如何从被调用函数更改调用函数中的变量?

c - 相同的匿名结构是否兼容?

php - Wordpress 重定向循环错误

创建函数重复字符

javascript - 在javascript中循环访问 "function"对象

loops - 使用 Google Script 循环浏览 Google Sheets 中某个范围内的单元格

c - 将数组及其长度变量包装在 C 的结构中是最佳实践吗?

c - 可能基于预处理器生成的 #if 或 #ifdef "thing"

python while循环意外行为