牛客网基础语法111~120题

简介: 牛客网基础语法111~120题

牛客网基础语法111~120题😘😘😘

💫前言:今天是咱们第十一期刷牛客网上的题目。

💫目标:能使用数组来解决问题。

💫鸡汤:一张纸对折就能站立。先干为敬,大家随意。

🚩第一题

💦后面的几道题都类似,只要大家掌握好打印星号的方法就行

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

🚩第二题

#include <stdio.h>
int main()
{
    int n = 0;
    //多组输入
    while ((scanf(" %d", &n)) != EOF)
    {
        //控制行
        for (int i = 0; i < n; i++)
        {
            //控制列
            for (int j = 0; j < n; j++)
            {
                //控制打印
                if (i == n - 1 || j == 0 || i == j)
                {
                    printf("* ");
                }
                else
                {
                    printf("  ");
                }
            }
            printf("\n");
        }
    }
    return 0;
}

🚩第三题

💦这里和杨辉三角的打印很相似,写完这到题目可以去写写杨辉三角。

#include <stdio.h>
int main()
{
   int n = 0;
   //多组输入
   while ((scanf("%d", &n)) != EOF)
   {
       //控制行数
       for (int i = 1; i <= n; i++)
       {
           //打印一行
           for (int j = 1; j <= i; j++)
           {
               printf("%d ", j);
           }
           printf("\n");
       }
   }
   return 0;
}

🚩第四题

#include<stdio.h>
int main() 
{
    //初始化
    int a, i, j;
    //输入
    scanf("%d", &a);
    //d为开始的前面的空格数
    int d = 3 * a;     
    for (i = 0; i < a; i++) 
    {
        for (j = d - 1; j > 0; j--)
            printf(" ");
        for (j = 0; j < i + 1; j++)
            printf("*     ");//5个空格
        printf("\n");            //打印第一行
        for (j = d - 2; j > 0; j--)
            printf(" ");
        for (j = 0; j < i + 1; j++)
            printf("* *   "); //* *和三个空格组成控制
        printf("\n");            //打印第二行
        for (j = d - 3; j > 0; j--)
            printf(" ");
        for (j = 0; j < i + 1; j++)
            printf("* * * ");
        printf("\n");            //打印第三行
        d -= 3;
    }
    for (i = 0; i < a; i++) 
    {
        for (j = 0; j < 3 * a - 1; j++)
            printf(" ");
        printf("*\n");
    }
    return 0;
}

🚩第五题

💦这道题真的恶心人,希望大家能耐心敲完这道题。

#include<stdio.h>
#include<math.h>
int main()
{
    char arr[800][800] = { 0 };
    int n = 0;
    scanf("%d", &n);
    int y = 3*pow(2,n-1)-1;//y表示顶点在第一行的下标值
    arr[0][y] = '*';
    arr[1][y-1] = '*';
    arr[1][y+1] = '*';
    arr[2][y-2] = '*';
    arr[2][y+2] = '*';
    arr[2][y] = '*';
    //第一次循环,将[最上面的最小的三角形]赋值到对应其[左下的三角形]位置和[右下的三角形]位置
    //如果有第二次循环,则将由[三个小三角形构成的三角形]赋值到左下和右下。
    for (int i = 1; i < n; i++)//n表示复制n-1次
    {
        int rang = (3 * pow(2, i - 1) - 1);
        for (int x1 = 0; x1 <= rang; x1++)
        {
            for (int y1 = y - rang; y1 <= y + rang; y1++)
            {
                arr[x1 + rang + 1][y1 - rang - 1] = arr[x1][y1];
            }
        }
        for (int x1 = 0; x1 <= rang; x1++)
        {
            for (int y1 = y - rang; y1 <= y + rang; y1++)
            {
                arr[x1 + rang + 1][y1 + rang + 1] = arr[x1][y1];
            }
        }
    }
    //打印树叶
    for (int i = 0; i <= 3 * pow(2, n-1)-1; i++)
    {
        for (int j = 0; j <= 3 * pow(2, n) - 2; j++) 
        {
            if (arr[i][j] == '*')
                printf("%c", arr[i][j]);
            else
                printf(" ");
        }
        printf("\n");
    }
    //打印树干
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < y; j++)
            printf(" ");
        printf("*\n");
    }
    return 0;
}

🚩第六题

#include <stdio.h>
int main() 
{
    //初始化
    int n = 0;
    int x = 0;
    //输入
    scanf("%d %d",&n,&x);
    int i = 0;
    int count = 0;
    //循环
    for(i = 1;i <= n;i++)
    {
        //这里防止i改变
        int m = i;
        while(m)
        {
            if(m % 10 == x)
            {
                count++;
            }
            m /= 10;
        }
    }
    //输出
    printf("%d\n",count);
    return 0;
}

🚩第七题

💦当然这里可以采用逆序法,这里用了一些技巧。

#include <stdio.h>
int main() 
{
    //定义数组
    int arr[10] = {0};
    //输入
    for(int i = 0;i <= 9;i++)
    {
        scanf("%d",&arr[i]);
    }
    //逆序
    for(int i = 9;i >= 0;i--)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

🚩第八题

#include <stdio.h>
int main() 
{
    //初始化
    int N = 0;
    int num = 0;
    int sum = 0;
    //输入
    scanf("%d",&N);
    for(int i = 0;i < N;i++)
    {
        scanf("%d",&num);
        //统计
        sum = sum + num;
    }
    printf("%d\n",sum);
    return 0;
}

🚩第九题

#include <stdio.h>
int main() 
{
    //初始化
    int arr[101] = {0};
    int n = 0;
    //输入
    scanf("%d",&n);
    for(int i = 0;i < n;i++)
    {
        scanf("%d",&arr[i]);
    }
    //定义最大值,最小值
    int max = arr[0];
    int min = arr[0];
    for(int i = 0;i < n;i++)
    {
        if(arr[i] > max)
            max = arr[i];
        if(arr[i] < min)
            min = arr[i];
    }
    int sum = max - min;
    printf("%d\n",sum);
    return 0;
}

🚩第十题

#include<stdio.h>
int main() 
{
    int arr[40] = { 0 };
    int num = 0;
    scanf("%d", &num);//输入几名
    for (int k = 0; k <= num; k++) 
    {   //输入成绩
        scanf("%d", &arr[k]);
    }
    int temp = 0;
    for (int i = 0; i < num; i++) 
    {   //第i位为最大数
        for (int j =i+1; j<num; j++) 
        {   //从第i+1位开始遍历剩余数
            if (arr[j] > arr[i]) 
            {   //存在大于最大数的数
                temp = arr[i];//把最大数和比较数进行交换
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    for (int k = 0; k < 5; k++)
        printf("%d ", arr[k]);
    return 0;
}

🎉结束语

今天的刷题内容就到这里啦,如果上面的题目你有更优的解法,请打在下面的评论区中,独乐乐不如众乐乐。麻烦大家举起自己的小手,给博主三连,有你们的支持就是我最大的动力。预知后事如何,且听下回分解。

目录
相关文章
|
6天前
牛客网基础语法101~110题
牛客网基础语法101~110题
39 0
|
6天前
牛客网基础语法91~100题
牛客网基础语法91~100题
30 0
|
6天前
|
编译器
牛客网基础语法81~90题
牛客网基础语法81~90题
32 0
|
6天前
牛客网基础语法71~80题
牛客网基础语法71~80题
27 0
|
11月前
|
C语言
牛客网基础语法41~50题
前言:今天是咱们第五期刷牛客网上的题目。 目标:熟练用数学知识来解决编程问题,会利用每种循环。 鸡汤:压抑了,那就换个环境呼吸;困惑了,那就转个角度思考;没路了,不妨回头,路在脚下,哪个方向都可以走。先干为敬,大家随意。
30 0
|
11月前
|
C++
牛客网基础语法61~70题
前言:今天是咱们第七期刷牛客网上的题目。 目标:可以掌握循环嵌套,逻辑思维更加清晰,对循环知识掌握熟练。 鸡汤:城市人潮拥挤,别走丢了自己。先干为敬,大家随意。
62 0
|
11月前
|
存储 编译器
牛客网基础语法1~10题
今天是咱们第一期刷牛客网上的题目。 目标:掌握基础编程,打牢基础知识,有一定的编程思想 鸡汤:读不在三更五鼓,功只怕一曝十寒。先干为敬,大家随意。
41 0
|
11月前
牛客网基础语法21~30题
前言:今天是咱们第三期刷牛客网上的题目。 目标:掌握基础编程,带有数学思维解决编程相关问题。 鸡汤:早上起来有两个选择,盖上被子做你未完成的梦,掀开被子完成你未完成的梦。先干为敬,大家随意。
39 0
|
11月前
|
C语言
牛客网基础语法11~20题
前言:今天是咱们第二期刷牛客网上的题目。 目标:对输入输出的格式,方法,类型掌握熟练,对double,float理解深入,编程思想更进一步。 鸡汤:人活着,再苦再累,都别抱怨,要努力,越努力,才会越幸运。抱怨,只会增加怨气,努力,才能改变气运。先干为敬,大家随意。
50 0
|
11月前
牛客网基础语法31~40题
前言:今天是咱们第四期刷牛客网上的题目。 目标:熟练用数学知识来解决编程问题,逻辑思维更加紧密,可以用更简单的方法,来解决编程问题。 鸡汤:不要说看破红尘心已寒,红尘本就是清浊合流浪滔天;不要说怀才不遇,才华本就是为人作嫁铺路砖。先干为敬,大家随意。
49 0