牛客网基础语法111~120题

牛客网基础语法111~120题

前言:今天是咱们第十一期刷牛客网上的题目。
目标:能使用数组来解决问题。
鸡汤:一张纸对折就能站立。先干为敬,大家随意。

第一题

牛客网基础语法111~120题_第1张图片

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

#include 
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;
}

第二题

牛客网基础语法111~120题_第2张图片

#include 
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;
}

第三题

牛客网基础语法111~120题_第3张图片

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

#include 
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;
}

第四题

牛客网基础语法111~120题_第4张图片

#include

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;
}

第五题

牛客网基础语法111~120题_第5张图片

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

#include
#include
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;
}

第六题

牛客网基础语法111~120题_第6张图片

#include 
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;
}

第七题

牛客网基础语法111~120题_第7张图片

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

#include 
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;
}

第八题

牛客网基础语法111~120题_第8张图片

#include 
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;
}

第九题

牛客网基础语法111~120题_第9张图片

#include 
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;
}

第十题

牛客网基础语法111~120题_第10张图片

#include
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;
}

结束语

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

你可能感兴趣的:(c语言)