[百战成神6]C语言之凡人暴刷小牛【超详细解析,掌握每道题】

 💘作者:你我皆为凡人

 💘博客主页:你我皆为凡人的博客

 💘名言警句:时间不会为任何人停留,而事物与人,无时不刻也在变化着。每一个人,也都在不停向前!

 💘觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!

💘系列作品:

💘[百战成神1]C语言之凡人暴刷小牛【超详细解析,掌握每道题】

💘[百战成神2]C语言之凡人暴刷小牛【超详细解析,掌握每道题】

💘[百战成神3]C语言之凡人暴刷小牛【超详细解析,掌握每道题】

💘[百战成神4]C语言之凡人暴刷小牛【超详细解析,掌握每道题】

💘[百战成神5]C语言之凡人暴刷小牛【超详细解析,掌握每道题】

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_20,color_FFFFFF,t_70,g_se,x_16

 

文章目录

目录

文章目录

前言

💘BC53 计算一元二次方程

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛示例3

💛示例4

💛示例5

💛解析:

        💘 代码如下:

 💘BC59 翻转直角三角形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛解析:

💘 代码如下:

💘BC60 带空格直角三角形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛解析:

💘 代码如下:(两种方法)

💘BC62 翻转金字塔图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛解析:

💘 代码如下:

💘BC63 菱形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛示例3

💛解析:

💘 代码如下:

💘BC64 K形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛示例3

💛解析:

💘 代码如下:

💘BC65 箭形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛解析:

💘 代码如下:

💘BC66 反斜线形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛解析:

💘 代码如下:(两种方式)

💘BC67 正斜线形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛解析:

💘 代码如下:(两种方式)

💘BC68 X形图案

💛描述

💛输入描述:

💛输出描述:

💛示例1

💛示例2

💛解析:

💘 代码如下:

 

总结


 

前言

内容超详细!!手把手教你如何去解析编程!如果你能听懂C语言,但是一上手就不会了,听完我讲解的题目后,相信你的写代码能力会逐步上升,战胜对编程的恐惧!


提示:以下是本篇文章正文内容,下面案例可供参考

💘BC53 计算一元二次方程

💛描述

从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4*a*c的三种情况计算并输出方程的根。

💛输入描述:

多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。

💛输出描述:

针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。

  如果a = 0,输出“Not quadratic equation”;

  如果a ≠  0,分三种情况:

△ = 0,则两个实根相等,输出形式为:x1=x2=...

△  > 0,则两个实根不等,输出形式为:x1=...;x2=...,其中x1  <=  x2。

△  < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)

所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。

💛示例1

输入:

2.0 7.0 1.0

输出:

x1=-3.35;x2=-0.15

💛示例2

输入:

0.0 3.0 3.0

输出:

Not quadratic equation

💛示例3

输入:

1 2 1

输出:

x1=x2=-1.00

💛示例4

输入:

2 2 5

输出:

x1=-0.50-1.50i;x2=-0.50+1.50i

💛示例5

输入:

1 0 1

输出:

x1=0.00-1.00i;x2=0.00+1.00i

💛解析:

🟥1,定义三个浮点数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,先定义一个数表示△

        🔹2,先进行判断,如果a为0的情况下输出Not quadratic equation

        🔹3,如果不为0的话有三种情况:

        🔹4,如果△等于0的情况,要输出x1等于x2,求x1与x2,需要-b+-开平方下的△/2*a,而-b+-开平方下的△有可能是0,那么需要有两种,是0的情况和不是0的情况,定义一个数表示b+-开平方下的△,是0的话输出这个数,不是0的话输出-b/(2*a),因为△等于0也没事

        🔹5,如果△大于0的情况x1等于-b - sqrt(s) )/ (a * 2),x2等于-b +sqrt(s) )/ (a * 2),注意的是,x1要小于等于x2,所以前面是-,后面是+

        🔹6,如果△小于0的情况,需要定义一个实数和虚数,这个时候需要考虑一种情况,因为虚数如果小于0的话,会多出一个负号,需要把这个负号解决掉,所以如果小于0,输出x1=%.2f%.2fi;x2=%.2f+%.2fi\n , a1, a2, a1, fabs(a2),减去一个负号,那么就处理掉x1多出来的符号,而后面加法没办法减去符号,可以取a2的绝对值,让它是正数,这个时候就完美解决掉了多出符号的问题,所以判断小于0则输出以上判断,否则输出题目要求的结果

        🔹这个题目很离谱,这几个月增加了好几个比例,导致以前能通过的都过不去,我也是很蒙蔽,花了点时间完成

        💘 代码如下:
 

#include<stdio.h>
#include<math.h>
int main()
{
    float a = 0.0;
    float b = 0.0;
    float c = 0.0;
    while (scanf("%f %f %f", &a, &b, &c) != EOF)
    {
        if (a == 0)
        {
            printf("Not quadratic equation\n");
        }
        else
        {
            float s = b * b - 4 * a * c;
            if (s > 0)
            {
                printf("x1=%.2f;x2=%.2f\n", ((-b - sqrt(s) )/ (a * 2)), ((-b + sqrt(s)) / (a * 2)));
            }
            else if (s < 0)
            {
                float a1 = -b / (2 * a);
                float a2 = sqrt(-s) / (2 * a);
                if(a2 <0)
                {
                     printf("x1=%.2f%.2fi;x2=%.2f+%.2fi\n", a1, a2, a1, fabs(a2));
                }
                else
                {
                    printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", a1, a2, a1, a2);
                }
            }
            else
            {
                float xx = -b + sqrt(s);
                if (xx == 0)
                {
                    printf("x1=x2=%.2f\n", xx);
                }
                else
                {
                    printf("x1=x2=%.2f\n", -b / (2 * a));
                }
            }
        }
    }
    return 0;
}

 💘BC59 翻转直角三角形图案

 

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转直角三角形图案。

💛输入描述:

多组输入,一个整数(2~20),表示翻转直角三角形直角边的长度,即“*”的数量,也表示输出行数。

💛输出描述:

针对每行输入,输出用“*”组成的对应长度的翻转直角三角形,每个“*”后面有一个空格。

💛示例1

输入:

5

输出:

* * * * *
* * * *
* * *
* *
*

💛示例2

输入:

6

输出:

* * * * * *
* * * * *
* * * *
* * *
* *
*

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个翻转的直角三角形

        🔹2,先判断行数,有n行,然后判断一行打印多少个,我们可以看到,第一行是n个,那么第二行少一个,和i有关,所以小于n-i个就能控制一行打印的个数,打印完一行然后换行

💘 代码如下:

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n)!= EOF)
    {
        int i = 0;
        for(i=0;i<n;i++)
        {
            int j = 0;
            for(j=0;j<n-i;j++)
            {
                printf("* ");
            }
                    printf("\n");
        }
    }
    return 0;
}

 实现效果:

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_15,color_FFFFFF,t_70,g_se,x_16

 

💘BC60 带空格直角三角形图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。

💛输入描述:

多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。

💛输出描述:

针对每行输入,输出用“*”组成的对应长度的直角三角形,每个“*”后面有一个空格。

💛示例1

输入:

5

输出:

        * 
      * * 
    * * * 
  * * * * 
* * * * *

💛示例2

输入:

4

输出:

      * 
    * * 
  * * * 
* * * *

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个带空格的直角三角形图案

        🔹2,先观察一下,发现是由两部分组成,倒着的空格三角形与一个正序三角形,那么先来打印一行的数据,创建i,小于n,来实现一行打印的数据,定义j,有两部分,先打印空格,两个空格为一组,第一行有四组,然后递减,小于n-1-i刚好可以控制几组,然后打印星号与空格,第一行一个,递增,刚好小于等于i可以控制

        🔹3,还可以分析一下,用坐标的方法实现,可以发现一行两部分组成,而根据坐标,行为i ,列为j,那么空格部分i+j<n-1;那么如果i+j<n-1的话输出空格,否则输出星号空格

         🔹4,最后注意,打印完一行的记得换行

💘 代码如下:(两种方法)

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n)!= EOF)
    {
        int i = 0;
        for(i=0;i<n;i++)
        {
            int j = 0;
            for(j=0;j<n-1-i;j++)
            {
                printf("  ");
            }
            for(j=0;j<=i;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}
#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n)!= EOF)
    {
        int i = 0;
        for(i=0;i<n;i++)
        {
            int j = 0;
            for(j=0;j<n;j++)
            {
                if(i+j<n-1)
                {
                    printf("  ");
                }
                else
                {
                    printf("* ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_14,color_FFFFFF,t_70,g_se,x_16

 

💘BC62 翻转金字塔图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。

💛输入描述:

多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。

💛输出描述:

针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。

💛示例1

输入:

5

输出:

* * * * * 
 * * * * 
  * * * 
   * * 
    * 

💛示例2

输入:

6

输出:

* * * * * * 
 * * * * * 
  * * * * 
   * * * 
    * * 
     * 

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个翻转金字塔图案

        🔹2,先观察一下,发现是由两部分组成,倒着的空格三角形与星号加上空格组成的倒着的金字塔,先打印一行,由n控制,然后打印一行的数据,先打印空格,第一行没有,第二行有一个,递增,那么当i为0的时候,第一行不输出,所以小于i可以控制空格输出,第二部分,打印星号与空格,第一行n个,第二行n-1个,那么可以减去i来控制每一行

         🔹3,最后注意,打印完一行的记得换行

💘 代码如下:

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n) != EOF)
    {
        int i = 0;
        for(i=0;i<n;i++)
        {
            int j = 0;
            for(j=0;j<i;j++)
            {
                printf(" ");
            }
            for(j=0;j<n-i;j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
    return 0;
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_14,color_FFFFFF,t_70,g_se,x_16

 

💘BC63 菱形图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。

💛输入描述:

多组输入,一个整数(2~20)。

💛输出描述:

针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。

💛示例1

输入:

2

输出:

  * 
 * * 
* * * 
 * * 
  * 

💛示例2

输入:

3

输出:

   * 
  * * 
 * * * 
* * * * 
 * * * 
  * * 
   * 

💛示例3

输入:

4

输出:

    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    * 

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个菱形图案

        🔹2,先观察一下,发现是由两部分组成,一个是正三角形,一个是反三角形

         🔹3,先实现正三角形,正三角由两部分组成,左边是一个空格组成的倒三角,右边是一个星号组成的正三角,左边第一行有n-i个来控制输出,当i为0的时候第一行输出n个,右边有小于等于i个输出,当i等于0的时候,输出1个,打印完一行的内容然后换行

         🔹4,然后实现倒三角形,正三角由两部分组成,左边是一个空格组成的正三角,右边是一个星号组成的倒三角,左边第一行有i来控制输出,当i为0的时候第一行输出0个,右边由n+1-i来控制输出,当i等于0的时候,输出n+1个,打印完一行的内容然后换行

💘 代码如下:

#include<stdio.h>


int main() {
    int n = 0;
    while (scanf("%d", &n) != EOF) {
        //正的三角形
        int i = 0;
        for (i = 0; i < n; i++)
        {
            //空格
            int j = 0;
            for (j = 0; j <n-i; j++) 
            {
                printf(" ");
            }
            //星号空格
            for (j = 0; j <=i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
        //倒着的三角形
        for(i=0;i<n+1;i++)
        {
             //空格
            int j = 0;
            for (j = 0; j <i; j++)
            {
                printf(" ");
            }
            //星号空格
            for (j = 0; j <n+1-i; j++)
            {
                printf("* ");
            }
            printf("\n");
        }
    }
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_14,color_FFFFFF,t_70,g_se,x_16

 

💘BC64 K形图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。

💛输入描述:

多组输入,一个整数(2~20)。

💛输出描述:

针对每行输入,输出用“*”组成的K形,每个“*”后面有一个空格。

💛示例1

输入:

2

输出:

* * * 
* * 
* 
* * 
* * * 

💛示例2

输入:

3

输出:

* * * * 
* * * 
* * 
* 
* * 
* * * 
* * * * 

💛示例3

输入:

4

输出:

* * * * * 
* * * * 
* * * 
* * 
* 
* * 
* * * 
* * * * 
* * * * * 

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个K形图案

        🔹2,先观察一下,发现是由两部分组成,上部分是倒三角星号加上正三角空格,下部分是正三角星号加上倒三角空格

        🔹3,先实现上半部分,上半部分由两部分组成,左边是一个星号组成的梯形,右边是一个空格组成的三角,左边第一行有n+1-i个来控制输出,当i为0的时候第一行输出n+1-0个,右边有小于i个控制输出,当i等于0的时候,输出0个,打印完一行的内容然后换行

         🔹4,然后实现下半部分,下半部分由两部分组成,左边是一个空格组成的正三角,右边是一个星号组成的倒三角,左边第一行由小于等于i来控制输出,当i为0的时候第一行输出1个,右边由n-i来控制输出,当i等于0的时候,输出n+1个,打印完一行的内容然后换行

        🔹这道题需要注意的是在k行后面有空格的输出,而不是只有k,乍一看看不到后面的空格,这是这道题目比较坑的地方

💘 代码如下:

#include<stdio.h>

int main()
{
    int n = 0;
    while(scanf("%d",&n) != EOF)
    {
        int i = 0;
        //上半部分
        for(i=0;i<n;i++)
        {
            //*空格  
            int j = 0;
            for(j=0;j<n+1-i;j++)
            {
                printf("* ");
            }
            //空格
            for(j=0;j<i;j++)
            {
                printf(" ");
            }
            printf("\n");
        }
        //下半部分
        for(i=0;i<n+1;i++)
        {
            //*空格  
            int j = 0;
            for(j=0;j<=i;j++)
            {
                printf("* ");
            }
            //空格
            for(j=0;j<n-i;j++)
            {
                printf(" ");
            }
            printf("\n");
        }
    }
    return 0;
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_8,color_FFFFFF,t_70,g_se,x_16

 

💘BC65 箭形图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的箭形图案。

💛输入描述:

本题多组输入,每行一个整数(2~20)。

💛输出描述:

针对每行输入,输出用“*”组成的箭形。

💛示例1

输入:

2

输出:

    *
  **
***
  **
    *

💛示例2

输入:

3

输出:

      *
    **
  ***
****
  ***
    **
      *

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个箭行图案

        🔹2,先观察一下,发现是由两部分组成,上部分是倒三角空格加上正三角星号,下部分是正三角空格加上倒三角星号

        🔹3,先实现上半部分,上半部分由两部分组成,左边是一个空格组成的倒三角,右边是一个星号组成的正三角,左边第一行有n-i来控制输出,当i为0的时候第一行输出n-0个,右边有小于等于i来控制输出,当i等于0的时候,输出1个,打印完一行的内容然后换行

         🔹4,然后实现下半部分,下半部分由两部分组成,左边是一个空格组成的正三角,右边是一个星号组成的倒三角,左边第一行由小于i来控制输出,当i为0的时候第一行输出0个,右边由n+1-i来控制输出,当i等于0的时候,输出n+1-0个,打印完一行的内容然后换行

💘 代码如下:

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n)!= EOF)
    {
        //上半部分
        int i = 0;
        for(i=0;i<n;i++)
        {
            int j = 0;
            for(j=0;j<n-i;j++)
            {
                printf("  ");
            }
            for(j=0;j<=i;j++)
            {
                printf("*");
            }
            printf("\n");
        }
        //下半部分
        for(i=0;i<n+1;i++)
        {
            int j = 0;
            for(j=0;j<i;j++)
            {
                printf("  ");
            }
            for(j=0;j<n+1-i;j++)
            {
                printf("*");
            }
            printf("\n");
        }
    }
    return 0;
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_9,color_FFFFFF,t_70,g_se,x_16

 

💘BC66 反斜线形图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的反斜线形图案。

💛输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“*”的数量。

💛输出描述:

针对每行输入,输出用“*”组成的反斜线。

💛示例1

输入:

4

输出:

*   
 *  
  * 
   *

💛示例2

输入:

5

输出:

*    
 *   
  *  
   * 
    *

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个反斜线图案

        🔹2,可以按照上面拆分的方法做,打印正三角,星号,反三角

        🔹3,也可以发现,如果按照坐标的话,第一行一列,二行二列,三行三列,n行n列是星号,用for循环定义,i与j小于n,如果当i等于j的时候,打印星号,否则打印空格

💘 代码如下:(两种方式)

#include<stdio.h>
int main()
{
    int n = 0;
    while (scanf("%d", &n) != EOF)
    {
        int i = 0;
        for (i = 0; i < n; i++)
        {
            int j = 0;
            for (j = 0; j < n; j++)
            {
                if (i == j)
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}
#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d", &n) !=EOF)
   {
        int i = 0;
        for(i=0; i<n; i++)
       {
            //空格
            int j = 0;
            for(j=0; j<i; j++)
           {
                printf(" ");
           }
            //*
            printf("*");
            //注意*后边的空格
            for(j=i+1; j<n; j++)
           {
                printf(" ");
           }
            printf("\n");
       }
   }
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_5,color_FFFFFF,t_70,g_se,x_16

 

💘BC67 正斜线形图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。

💛输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“*”的数量。

💛输出描述:

针对每行输入,输出用“*”组成的正斜线。

💛示例1

输入:

4

输出:

   *
  * 
 *  
*   

💛示例2

输入:

5

输出:

    *
   * 
  *  
 *   
* 

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个正斜线图案

        🔹2,可以按照上面拆分的方法做,打印反三角,星号,正三角

        🔹3,也可以发现,如果i+j等于n-1的时候,打印的是星号,否则打印的是空格,打印完一行换行

💘 代码如下:(两种方式)

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n) != EOF)
    {
        int i = 0;
        for(i=0;i<n;i++)
        {
            int j =0;
            for(j=0;j<n;j++)
            {
                if(i+j==n-1)
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}
#include <stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d", &n) != EOF)
   {
        int i = 0;
        for(i=0; i<n; i++)
       {
            //空格
            int j = 0;
            for(j=0; j<n-1-i; j++)
           {
                printf(" ");
           }
            //*
            printf("*");
            //空格
            for(j=n-i; j<n; j++)
           {
                printf(" ");
           }
            printf("\n");
       }
   }
    return 0; 
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_14,color_FFFFFF,t_70,g_se,x_16

 

💘BC68 X形图案

💛描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。

💛输入描述:

多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。

💛输出描述:

针对每行输入,输出用“*”组成的X形图案。

💛示例1

输入:

5

输出:

*   *
 * * 
  *  
 * * 
*   *

💛示例2

输入:

6

输出:

*    *
 *  * 
  **  
  **  
 *  * 
*    *

💛解析:

🟥1,先定义一个整数,然后多组输入,注意停止条件

🟥2,分析一下题,需要的条件

        🔹1,打印一个X型图案

        🔹2,可以发现,这个是上面两个的结合体,for循环n行n列,如果i等于j的情况下,打印星号,而且如果i加上j的和等于n减1的情况,也打印星号,否则打印空格,打印完一行换行

💘 代码如下:

#include<stdio.h>
int main()
{
    int n = 0;
    while(scanf("%d",&n) != EOF)
    {
        int i = 0;
        for(i=0;i<n;i++)
        {
            int j = 0;
            for(j=0;j<n;j++)
            {
                if(j==i)
                {
                    printf("*");
                }else if(j+i==n-1)
                {
                    printf("*");
                }else
                {
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5L2g5oiR55qG5Li65Yeh5Lq6,size_15,color_FFFFFF,t_70,g_se,x_16

 

 


 

总结

剖析牛客编程题,让新手更加能够战胜对编程的恐惧,和凡人一起来解决这些题,刷爆牛客网上的题,现阶段是入门题,往后会开出新的专栏 ,一些复杂有难度的题,如果大家觉得凡人的文章还不错,值得观看收藏,希望大家一键三连,多多支持,有什么建议下方评论区留言,或者私信凡人,凡人一定听从意见,最后感谢大家观看!!!
6a51641c901041158b78e19c6c1a9d4d.gif04a1d353b4f84a48a3808a3f317372dc.png

 

 

 

 

 

评论 158
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值