#C语言——刷题攻略:牛客编程入门训练(十一):攻克 循环控制(三),轻松拿捏!

🌟菜鸟主页:@晨非辰的主页****

👀学习专栏:《C语言刷题合集》****

💪学习阶段:C语言方向初学者

名言欣赏:"代码行数决定你的下限,算法思维决定你的上限。"

前言:在学习编程语言的同时,千万别忘了刷刷题来巩固一下学到的知识,对于牛客网_编程入门系列,小子会持续更新分享刷题过程,其中包括一些基础板块的题目,本次将呈现6道题。

~~注意部分标题括号内代表对题目涉及到的知识进行说明!


目录

[1. BC89 包含数字9的数](#1. BC89 包含数字9的数)

[2. BC90 小乐乐算多少人被请家长](#2. BC90 小乐乐算多少人被请家长)

[3. BC91 水仙花数](#3. BC91 水仙花数)

[4. BC92 变种水仙花](#4. BC92 变种水仙花)

[5. BC93 公务员面试](#5. BC93 公务员面试)

[6. BC94 反向输出一个四位数](#6. BC94 反向输出一个四位数)


1. BC89 包含数字9的数

链接:牛客网_BC89 包含数字9的数_简单

cpp 复制代码
#include <stdio.h>
int main() 
{
    int count = 0;
    for(int i = 1; i <= 2019; i++)
    {
        int j = i;//接收i值,防止i值混乱
        while(j)
        {
            if(j % 10 == 9)
            {
            count++;
            break;
            }
            j /= 10;
        }
    }
    printf("%d\n", count);
    return 0;
}

思路------

--本题有一个易混点,注意看清题目要求:统计含9的数值个数,而不是数值中9的个数;对于其他就很常规了。


2. BC90 小乐乐算多少人被请家长

链接:牛客网_BC90 小乐乐算多少人被请家长_简单

cpp 复制代码
#include <stdio.h>
int main() 
{
    int n = 0;
    int C = 0, M = 0, E = 0;
    int count = 0;
    scanf("%d", &n);
    while((scanf("%d %d %d", &C, &M, &E) == 3))
    {
        if((C + M + E) / 3 < 60)
        {
            count++;
        }
    }
    printf("%d\n", count);
    return 0;
}

思路------

--本题的思路非常简单,对于数据的输入直接使用多组输入,不用管输入几行。


3. BC91 水仙花数

链接:牛客网_BC91 水仙花数_简单

cpp 复制代码
#include <stdio.h>
int main()
{
    int a, b;
    int flag = 0;//定义标志------>no
    int sum = 0;
    while (scanf("%d %d", &a, &b) != EOF)
    {
        //循环生成中间数
        for (int i = a; i <= b; i++)
        {
            int i1 = i;
            sum = 0;//重置
            do
            {
                //i2变量接收余数,便于后续操作
                int i2 = i1 % 10;
                sum = sum + (i2 * i2 * i2);

                //if (sum == i)
                //{
                  //printf("%d ", i);
                  //flag = 1;//至少一个符合
                //}

            } while (i1 /= 10);

            if (sum == i)
                {
                    printf("%d ", i);
                    flag = 1;//至少一个符合
                }
        }
        if (flag == 0)
        {
            printf("no\n");
        }

    }
    return 0;
}

思路------

--本题虽然网站表示难度为简单,其实还是需要一些思路的;

--在示例测试时,遇到729即使数值不符合,也会打印;因为9*9*9=729,这个逻辑是因为if语句在do-while循环内部造成的将if语句拿到循环外就行.


4. BC92 变种水仙花

链接:牛客网_BC92 变种水仙花_简单

cpp 复制代码
#include <stdio.h>
int main() 
{
    
    int sum = 0;
    for(int i = 10000; i < 100000; i++)
    {
        //循环进行获取两部分
        for(int j = 10; j <= 10000; j *= 10)
        {
            sum += (i / j) * (i % j);
        }
        if(sum == i)
        {
            printf("%d ", sum);
        }
        sum = 0;
        
    }
    return 0;
}

思路------

--本题思路较为简单,主体结构为两层for循环嵌套,逻辑比较简单,内层循环的设计比较好;当然也可以一层循环后直接进行创建多个变量来赋值'/'、'%'。


5. BC93 公务员面试

链接:牛客网_BC93 公务员面试_简单

cpp 复制代码
#include <stdio.h>
int main() 
{
    int a[7];//直接存放在数组
    while(scanf("%d %d %d %d %d %d %d", 
            &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) == 7)
    {
        int max = a[0];
        int min = a[0];
        double sum = 0.0;
        for(int i = 0; i < 7; i++) 
        {   
            //先算总和
            sum += a[i];
            //获取最大数
            if(a[i] >= max)
            {
                max = a[i];
            }
            
            //获取最小数
            if(a[i] < min)
            {
                min = a[i];
            }
        }
        sum = sum - (max + min); 
        printf("%.2lf\n", sum / 5.0);
    } 
    return 0;
}

思路------

--本题主要是多组输入处理有点麻烦,直接将数据存储在数组中,后续对于最大值、最小值的获取和其他操作,通过数组下标操作即可。


6. BC94 反向输出一个四位数

链接:牛客网_BC94 反向输出一个四位数_简单

cpp 复制代码
#include <stdio.h>
int main() 
{
    int a = 0;
    scanf("%d", &a);
    for(int i = 0; i <= 3; i++)
    {
        int j = a % 10;
        a /= 10;
    
        //得到一个余数就打印
        printf("%d", j);

    }
    return 0;
}

思路------

--本题要求逆序打印四位数,直接进行循环取余操作,得到一位就打印一位------>好处就是不用担心0在高位的输出。


刷题系列回顾:

#C语言------刷题攻略:牛客编程入门训练(九):攻克 分支控制(三)、循环控制(一),轻松拿捏!

#C语言------刷题攻略:牛客编程入门训练(十):攻克 循环控制(二),轻松拿捏!

结语:本篇文章就到此结束了,本文主要是练习部分循环控制题目,后续的题目练习难度会慢慢上来,但总体来说不会太难,喜欢的朋友们,一起来学习吧!欢迎三连~

相关推荐
mjhcsp20 小时前
C++ 高精度计算:突破数据类型限制的实现与应用
开发语言·c++·算法·高精度
lixinnnn.20 小时前
C++: map和set
开发语言·c++
郝学胜-神的一滴20 小时前
Qt QPushButton 样式完全指南:从基础到高级实现
linux·开发语言·c++·qt·程序人生
沐知全栈开发21 小时前
R MySQL 连接
开发语言
流川_疯21 小时前
CANOE概念与应用
经验分享·笔记·学习·汽车
tryxr21 小时前
变量捕获相关内容
java·开发语言·jvm
Elias不吃糖21 小时前
NebulaChat 框架学习笔记:原子变量与左值引用的工程应用
c++·学习
百锦再21 小时前
大型省级政务平台采用金仓数据库(KingbaseES)
开发语言·数据库·后端·rust·eclipse
biter down21 小时前
C 语言17:位操作符 & | ^:从二进制编码到大小端
c语言·开发语言
Chloeis Syntax21 小时前
MySQL初阶学习日记(2)--- 数据库的数据类型和表的操作
数据库·学习·mysql