各种神奇的图案输出

本作业来自王化雨老师

二维图案已完成

1【程序题】

窄◣。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

if (n<= 0)

{

printf("Bye!");

}

else

{

int i;

for (i = 1;i <= n;i++)

{

int j;

for (j = 1;j <= i;j++)

{

printf("*");

}

printf("\n");

}

}

}

int main()

{

int n;

do

{

printf("size:");

scanf("%d", &n);

print(n);

} while (n>0);

return 0;

}

2【程序题】

◢。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

if (n<= 0)

{

printf("Bye!");

}

else

{

int i;

for (i = 1;i <= n;i++)

{

int j;

for (j = 1;j <= n-i;j++)

{

printf(" ");

}

for (j = 1;j <= i;j++)

{

printf("*");

}

printf("\n");

}

}

}

int main()

{

int n;

do

{

printf("size:");

scanf("%d", &n);

print(n);

} while (n > 0);

return 0;

}

3【程序题】

宽◣。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

if (n<= 0)

{

printf("Bye!");

}

else

{

int i;

for (i = 1;i <= n;i++)

{

int j;

/*for (j = 1;j <= n-i;j++)

{

printf(" ");

}*/

for (j = 1;j<=2*i-1;j++)

{

printf("*");

}

printf("\n");

}

}

}

int main()

{

int n;

do

{

printf("size:");

scanf("%d", &n);

print(n);

} while (n > 0);

return 0;

}

4【程序题】

▲。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

if (n<= 0)

{

printf("Bye!");

}

else

{

int i;

for (i = 1;i <= n;i++)

{

int j;

for (j = n-i;j > 0;j--)

{

printf(" ");

}

for (j = 1;j<=2*i-1;j++)

{

printf("*");

}

printf("\n");

}

}

}

int main()

{

int n;

do

{

printf("size:");

scanf("%d", &n);

print(n);

} while (n > 0);

return 0;

}

5【程序题】

▼。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

if (n<= 0)

{

printf("Bye!");

}

else

{

int i;

for (i = n;i > 0;i--)

{

int j;

for (j = 1;j <= n-i;j++)

{

printf(" ");

}

for (j = 1;j <= 2 * i - 1;j++)

{

printf("*");

}

printf("\n");

}

}

}

int main()

{

int n;

do

{

printf("size:");

scanf("%d", &n);

print(n);

} while (n > 0);

return 0;

}

6【程序题】

◆菱形。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

int i, j;

if (n <= 0)

{

printf("Bye!");

}

else

{

int i;

for (i = 1;i <= n;i++)

{

int j;

for (j = n - i;j > 0;j--)

{

printf(" ");

}

for (j = 1;j <= 2 * i - 1;j++)

{

printf("*");

}

printf("\n");

}

n = n - 1;

for (i = n;i >0;i--)

{

for (j = 0; j <= n-i;j++)

{

printf(" ");

}

for (j = 1;j <=2*i-1;j++)

{

printf("*");

}

printf("\n");

}

}

}

int main()

{

int n;

do

{

printf("size:");

scanf("%d", &n);

print(n);

} while (n > 0);

return 0;

}

7【程序题】

沙漏形。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

int i, j;

if (n <= 0)

{

printf("Bye!");

}

else

{

int i;

for (i = n;i > 0;i--)

{

for (j = 0; j < n - i;j++)

{

printf(" ");

}

for (j = 1;j <= 2 * i - 1;j++)

{

printf("*");

}

printf("\n");

}

for (i = 2;i <= n;i++)

{

int j;

for (j = n - i;j > 0;j--)

{

printf(" ");

}

for (j = 1;j <= 2 * i - 1;j++)

{

printf("*");

}

printf("\n");

}

}

}

int main()

{

int n;

do

{

printf("size:");

scanf("%d", &n);

print(n);

} while (n > 0);

return 0;

}

8【程序题】

◇中空菱形。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;直到用户输入的值小于等于0为止;②当用户在提示符size:后输入的值小于等于0,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>
void print(int n)
{
    int i, j;
    if (n <= 0)
    {
        printf("Bye!");
    }
    else
    {
        int i, j;
        int m = 0;
        for (i = 1;i <= n;i++)
        {
            int l=0;
            for (j = 1;j <= 2 * n - 1;j++)
            {

                if (j == n - m || j == n + m)
                {
                    printf("*");
                    l += 1;
                }
                else
                {
                    printf(" ");
                }
                if (i == 1&&l==1)
                {
                    break;
                }
                else if (l == 2)
                {
                    break;
                }
            }m++;
            printf("\n");
        }
        m = m - 2;
        for (i = 1;i <= n-1;i++)
        {
            int l = 0;
            for (j = 1;j <= 2 * n - 1;j++)
            {
                if (j == n - m || j == n + m)
                {
                    printf("*");
                    l += 1;
                }
                else
                    printf(" ");
                if (l == 2)
                {
                    break;
                }
                else if (i == n - 1 && l == 1)
                {
                    break;
                }
            }m--;
            printf("\n");
        }
    }
}
int main()
{
    int n;
    do
    {
        printf("size:");
        scanf("%d", &n);
        print(n);
    } while (n > 0);
    return 0;
}

9【程序题】

数字◆。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;②能让图案正常显示的只能是1到9这九个数字,当用户在提示符size:后输入的值不在这个范围内,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)

{

    int i, j;

    if (n <= 0)

    {

        printf("Bye!");

    }

    else

    {

        int i;

        for (i = 1;i <= n;i++)

        {

            int j;

            for (j = n - i;j > 0;j--)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                printf("%d",i);

            }

            printf("\n");

        }

        n = n - 1;int m=n;

        for (i = n;i > 0;i--)

        {
            
            for (j = 0; j <= n - i;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                printf("%d",m);

            }
            m=m-1;
            printf("\n");

        }

    }

}

int main()

{

    int n;

    do

    {

        printf("size:");

        scanf("%d", &n);

        print(n);

    } while (n > 0);

    return 0;

}

10【程序题】

数字◆/纵向对称。在提示符size:后输入整数n,程序基于n的值,输出相应的图案,如下是n=5时的图案:

注意:①程序输出图案后,继续显示提示符size:,等待用户的下一次输入;②能让图案正常显示的只能是1到9这九个数字,当用户在提示符size:后输入的值不在这个范围内,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)
{
    int i, j;
    if (0 >= n)
    {
        printf("Bye!");
    }
    else
    {
        int i;

        for (i = 1;i <= n;i++)

        {

            int j;

            for (j = n - i;j > 0;j--)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                if (j <= (((2 * i - 1) / 2) + 1))
           {
                    printf("%d", j);
             }
                else
                {
                    printf("%d", 2 * (((2 * i - 1) / 2) + 1) - j);
                }

            }

            printf("\n");

        }

        n = n - 1;int m = n;

        for (i = n;i > 0;i--)

        {

            for (j = 0; j <= n - i;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                if (j <= (((2 * i - 1) / 2) + 1))
                {
                    printf("%d", j);
                }
                else
                {
                    printf("%d", 2*(((2 * i - 1) / 2) + 1)-j);
                }

            }
            m = m - 1;
            printf("\n");

        }
    }
}
    



int main()
{
    int n;
    do
    {
        printf("size:");
        scanf("%d", &n);
        print(n);
    } while (n > 0);
    return 0;
}

11【程序题】

字母◆/横向对称。在提示符size:后输入英文字母字符,程序基于输入的字母字符,输出相应的图案,如下是输入为e时的图案:

注意:①在提示符size:后输入小(大)写字母则图案由小(大)写字母组成;②程序输出图案后,继续显示提示符size:,等待用户的下一次输入;②能让图案正常显示的只能是英文字母,当用户在提示符size:后输入的字符不是英文字母,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)
{
    int i, j;
    if (n >= 65 && n <= 90)
    {
        int i;

        for (i = 1;i <= (n - 64);i++)

        {

            int j;

            for (j = (n - 64) - i;j > 0;j--)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                printf("%c", i + 64);

            }

            printf("\n");

        }

        n = n - 1;int m = (n - 64);

        for (i = (n - 64);i > 0;i--)

        {

            for (j = 0; j <= (n - 64) - i;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                printf("%c", i + 64);

            }
            m = m - 1;
            printf("\n");

        }
    }
    else if (n >= 97 && n <= 122)
    {
        int i;

        for (i = 1;i <= (n - 96);i++)

        {

            int j;

            for (j = (n - 96) - i;j > 0;j--)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                printf("%c", i + 96);

            }

            printf("\n");

        }

        n = n - 1;int m = (n - 96);

        for (i = (n - 96);i > 0;i--)

        {

            for (j = 0; j <= (n - 96) - i;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                printf("%c", i + 96);

            }
            m = m - 1;
            printf("\n");


        }
    }
    else
        printf("Bye!");
}




int main()
{
    char n;
    do
    {
        printf("size:");
        scanf("%c", &n);
        getchar();
        print(n);
    } while ((n >= 65 && n <= 90) || (n >= 97 && n <= 122));
    return 0;
}

12【程序题】

字母◆/纵向对称。在提示符size:后输入英文字母字符,程序基于输入的字母字符,输出相应的图案,如下是输入为E时的图案:

注意:①在提示符size:后输入小(大)写字母则图案由小(大)写字母组成;②程序输出图案后,继续显示提示符size:,等待用户的下一次输入;②能让图案正常显示的只能是英文字母,当用户在提示符size:后输入的字符不是英文字母,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:


 

#include <stdio.h>

void print(int n)
{
    int i, j;
    if (n >= 65 && n <= 90)
    {
        int i;

        for (i = 1;i <= (n - 64);i++)

        {

            int j;

            for (j = (n - 64) - i;j > 0;j--)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                if (j <= (((2 * i - 1) / 2) + 1))
                {
                    printf("%c", j + 64);
                }
                else
                {
                    printf("%c", (2 * (((2 * i - 1) / 2) + 1) - j) + 64);
                }

            }

            printf("\n");

        }

        n = n - 1;int m = (n - 64);

        for (i = (n - 64);i > 0;i--)

        {

            for (j = 0; j <= (n - 64) - i;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                if (j <= (((2 * i - 1) / 2) + 1))
                {
                    printf("%c", j + 64);
                }
                else
                {
                    printf("%c", (2 * (((2 * i - 1) / 2) + 1) - j) + 64);
                }

            }
            m = m - 1;
            printf("\n");

        }
    }
    else if (n >= 97 && n <= 122)
    {
        int i;

        for (i = 1;i <= (n - 96);i++)

        {

            int j;

            for (j = (n - 96) - i;j > 0;j--)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                if (j <= (((2 * i - 1) / 2) + 1))
                {
                    printf("%c", j + 96);
                }
                else
                {
                    printf("%c", (2 * (((2 * i - 1) / 2) + 1) - j) + 96);
                }

            }

            printf("\n");

        }

        n = n - 1;int m = (n - 96);

        for (i = (n - 96);i > 0;i--)

        {

            for (j = 0; j <= (n - 96) - i;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * i - 1;j++)

            {

                if (j <= (((2 * i - 1) / 2) + 1))
                {
                    printf("%c", j + 96);
                }
                else
                {
                    printf("%c", (2 * (((2 * i - 1) / 2) + 1) - j) + 96);
                }

            }
            m = m - 1;
            printf("\n");


        }
    }
    else
    printf("Bye!");
}




int main()
{
    char n;
    do
    {
        printf("size:");
        scanf("%c", &n);
        getchar();
        print(n);
    } while ((n >= 65 && n <= 90) || (n >= 97 && n <= 122));
    return 0;
}

13【程序题】

字母沙漏形/横向对称。在提示符size:后输入英文字母字符,程序基于输入的字母字符,输出相应的图案,如下是输入为E时的图案:

注意:①在提示符size:后输入小(大)写字母则图案由小(大)写字母组成;②程序输出图案后,继续显示提示符size:,等待用户的下一次输入;②能让图案正常显示的只能是英文字母,当用户在提示符size:后输入的字符不是英文字母,程序输出Bye!后结束。下面是程序的运行效果:

我的答案:

#include <stdio.h>

void print(int n)
{
    int i, j;
    if (n >= 65 && n <= 90)
    {
        int i;

        for (i = 1;i <= (n - 64);i++)

        {

            int j;

            for (j = 0;j <= i - 2;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= (2 * ((n - 64) - (i - 1)) - 1);j++)

            {

                printf("%c", i + 64);

            }

            printf("\n");

        }

        n = n - 1;int m = 1;

        for (i = (n - 64);i > 0;i--)

        {

            for (j = 0; j <= i - 2;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2*m+1;j++)

            {

                printf("%c", i + 64);
              
            }
            m++;
            printf("\n");

        }
    }
    else if (n >= 97 && n <= 122)
    {
        int i;

        for (i = 1;i <= (n - 96);i++)

        {

            int j;

            for (j = 0;j <= i - 2;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= (2 * ((n - 96) - (i - 1)) - 1);j++)

            {

                printf("%c", i + 96);

            }

            printf("\n");

        }

        n = n - 1;int m = 1;

        for (i = (n - 96);i > 0;i--)

        {

            for (j = 0; j <= i - 2;j++)

            {

                printf(" ");

            }

            for (j = 1;j <= 2 * m + 1;j++)

            {

                printf("%c", i + 96);

            }
            m++;
            printf("\n");

        }
    }
    else
        printf("Bye!");
}




int main()
{
    char n;
    do
    {
        printf("size:");
        scanf("%c", &n);
        getchar();
        print(n);
    } while ((n >= 65 && n <= 90) || (n >= 97 && n <= 122));
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ApophisJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值