【C语言】牛客网刷题训练-8

针对C语言入门OJ题牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网

(入门)BC72-平均身高_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第1张图片

参考代码:

//代码一
#include 
int main()
{
    int i = 0;
    float hi = 0.0;
    float sum = 0.0;
    for(i=0; i<5; i++)
    {
        scanf("%f", &hi);
        sum += hi;
    }
    printf("%.2f\n", sum/5.0);

    return 0;
}
//代码二
#include 
int main()
{
    int i = 0;
    float hi[5] = {0};
    float sum = 0.0;
    for(i=0; i<5; i++)
    {
        scanf("%f", &hi[i]);
    }
    for(i=0; i<5; i++)
    {
        sum += hi[i];
    }
    printf("%.2f\n", sum/5.0);

    return 0;
}

(简单)BC74-HTTP状态码_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第2张图片

解析:

状态码比较多,且为整数,所以可以考虑用 switch 语句。

参考代码:

#include 
int main()
{
    int state = 0;
    while(scanf("%d", &state) != EOF)
    {
        switch(state)
        {
            case 200:
                printf("OK\n");
                break;
            case 202:
                printf("Accepted\n");
                break;
            case 400:
                printf("Bad Request\n");
                break;
             case 403:
                printf("Forbidden\n");
                break;
            case 404:
                printf("Not Found\n");
                break;
            case 500:
                printf("Internal Server Error\n");
                break;
            case 502:
                printf("Bad Gateway\n");
                break;
        }
    }
    return 0;
}

(简单)BC75-数字三角形_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第3张图片

解析:

需要分析清楚每行打印的内容。

参考代码:

#include 
int main()
{
    int n = 0;
    while(scanf("%d", &n) != EOF)
    {
        int i = 0;
        //打印的行数
        for(i=1; i<=n; i++)
        {
            //打印一行的内容
            int j = 0;
            for(j=1; j<=i; j++)
            {
                printf("%d ", j);
            }
            printf("\n");
        }
    }
    return 0;
}

(简单)BC76-公务员面试_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第4张图片

解析:

一边输入,一边求和,一边求最大值和最小值,最后算平均值。

参考代码:

#include 
int main()
{
    int i = 0;
    int sum = 0;
    int min = 100;//假设最小值是100
    int max = 0;//假设最大值是0
    int score = 0;
    for(i=0; i<7; i++)
    {
        scanf("%d ", &score);//输入成绩
        sum += score;//成绩求和
        if(score > max)
            max = score;//求最大值
        if(score < min)
            min = score;//求最小值
    }
    printf("%.2f\n", (sum-min-max)/5.0);//输出去掉最高分和最低分的平均成绩,并换行
    return 0;
}

(简单)BC77-有序序列插入一个数_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第5张图片

解析:

从后往前比较数字找到合适的位置就可以插入数字了,但是如果插入的数字比所有的元素都
小,那就插入到第一个位置上(特殊情况)。(做类似题目需要考虑多种情况-边界值)

参考代码:

//代码一
#include 
int main()
{
    int n = 0;
    int arr[51] = {0};//0~51
    int m = 0;//要插入的数据
    scanf("%d", &n);//输入数据
    int i = 0;
    for(i=0; i=0 ; i--)
    {
        if(arr[i]> m)
        {
            arr[i+1] = arr[i];
        }
        else
        {
            arr[i+1] = m;
            break;
        }
    }
    //如果插入数字小于所有的数字
    if(i < 0)
    {
        arr[0] = m;
    }
    //打印
    for(i=0; i
//代码二
#include 
int main()
{
    int n = 0;
    int arr[50] = {0};
    int m = 0;//要插入的数据
    //输入数据
    scanf("%d", &n);
    int i = 0;
    for(i=0; i0 ; i--)
    {
        if(arr[i-1]> m)
        {
            arr[i] = arr[i-1];
        }
        else
        {
            arr[i] = m;
            break;
        }
    }
    //如果插入数字小于所有的数字
    if(i == 0)
    {
        arr[i] = m;
    }
    //打印
    for(i=0; i

(简单)BC78-筛选法求素数_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第6张图片

参考代码:

//代码一(与代码二无差)
#include 
//方法1:筛选法
int main()
{
     int n = 0;
     while (~scanf("%d", &n))
     {
         //int arr[n+1];//变长数组
         //初始化数组的内容为0-n
         int arr[101];//将数字与数组下标相对应
         int i = 0;
         //存储数据               
         for (i = 2; i<=n; i++)
         {
            arr[i] = i;
         }
         //列举所有的除数
         int j = 0;
         for (j = 2; j <= n; i++)
         {
             int k = 0;
             for (k = j + 1; k <= n; k++)
             {
                 if (arr[k] % j == 0)
                 arr[k] = 0;
             }
         }
         //输出并记录
         int count = 0;
         for (i = 2; i <= n; i++)
         {
             if (arr[i] != 0)
                 printf("%d ", arr[i]);
             else
                 count++;
         }
         printf("\n%d\n", count);
     }
     return 0;
}
//代码二和代码三不是题目要求的筛选法(在这里不建议用使用)
//代码二(与代码三无差)
//方法2:试除法
int main()
{
    int n = 0;
    //题目相当于打印n以内的素数
    while(scanf("%d", &n) != EOF)
    {
        int i = 0;
        int count = 0;
        for(i=2; i<=n; i++)
        {
            //判断i是否为素数
            //2->i-1之间的数字
            int j = 0;
            for(j=2; j
//代码三
//方法2:试除法
int is_prime(int n)
{
    int i = 0;
    for(i=2; i

(简单)BC79-图像相似度_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第7张图片

解析:

  1. 求两个二维数组的相同元素个数。
  2. 求百分比要注意 *100.0,小数点后保留2位。

参考代码:

#include 
int main()
{
    int m = 0;
    int n = 0;
    int a[100][100] = {0},b[100][100] = {0};
    scanf("%d%d", &m, &n);
    int i  = 0;
    int j = 0;
    int count = 0.0;
    //输入数据
    for(i=0; i

(简单)BC80-登录验证_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第8张图片

解析:

两个字符串比较大小不能使用  == ,得使用 strcmp 函数(需要引用#include 头文件),比较的是两个字符串中对应字符的 ASCII 码值。
【C语言】牛客网刷题训练-8_第9张图片
【C语言】牛客网刷题训练-8_第10张图片

参考代码:

#include 
#include 
int main()
{
    char name[100] = {0};
    char password[100] = {0};

    while(scanf("%s %s", name, password) != EOF)
    {
        //两个字符串比较相等
        if(strcmp(name, "admin")==0 && strcmp(password, "admin")==0)
        {
            printf("Login Success!\n");
        }
        else
        {
            printf("Login Fail!\n");
        }
    }
    return 0;
}

(简单)BC85-包含数字9的数_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第11张图片

解析:

要判断一个数字是否包含 9, 看这个数字的某一位是否为 9 即可,只要某一位为 9 就停下来。

参考代码:

#include 
int main()
{
    int i = 0;
    int count = 0;
    for(i=1; i<=2019; i++)
    {
        //判断i是否包含9
        int t = i;
        while(t)
        {
            if(t%10 == 9)
            {
                count++;
                break;
            }
            t = t/10;
            //t /= 10;
        }
    }
    printf("%d\n", count);
    
    return 0;
}

(入门)BC86-奇偶统计_牛客题霸_牛客网 (nowcoder.com)

【C语言】牛客网刷题训练-8_第12张图片

解析:

  1. 代码一就是统计奇数的个数,再算出偶数的个数。
  2. 代码二是根据数字的个数推算的。
  3. 代码三与代码二无差

参考代码:

//代码一
#include 
int main()
{
    int n = 0;
    scanf("%d", &n);
    int i = 0;
    int odd = 0;//奇数
    int even = 0;//偶数
    for(i=1; i<=n; i++)
    {
        if(i%2==1)
            odd++;
    }
    printf("%d %d\n", odd, n-odd);
    return 0;
}

//代码二
#include 
int main()
{
    int n = 0;
    scanf("%d", &n);
    int odd = 0;//奇数
    if(n%2==0)
        odd = n/2;//如果n是偶数,则奇数和偶数一样多
    else
        odd = n/2+1;//如果n是奇数,则奇数比偶数多1
    printf("%d %d\n", odd, n-odd);
    return 0;
}
//代数三
#include 
int main()
{
    int n = 0;
    scanf("%d", &n);
    if(n%2==1)
        printf("%d %d\n", n/2+1, n/2);
    else
        printf("%d %d\n", n/2, n/2);

    return 0;
}

1

你可能感兴趣的:(初学者,C语言,学习,c语言,学习,开发语言)