牛客网语法篇刷题(C语言) — 分支控制

news2024/12/22 23:26:08

作者主页:paper jie的博客_CSDN博客-C语言,算法详解领域博主

本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。

本文录入于《C语言-语法篇》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将C语言基础知识一网打尽,希望可以帮到读者们哦。

其他专栏:《C语言》《算法详解》《C语言系统详解》

内容分享:本期将用C语言对牛客网刷题的语法篇分支控制行进行具体讲解,各位看官姥爷快搬好小板凳坐好叭。

    -------- 不要998,不要98,只要一键三连,三连买不了吃亏,买不了上当

目录

题目链接

第一题

第二题

第三题

第四题

第五题

第六题

第七题

第八题

第九题

第十题

第十一题

第十二题

第十三题

第十四题

 第十五题

第十六题

第十七题

第十八题


题目链接

四季_牛客题霸_牛客网 (nowcoder.com)

健康评估_牛客题霸_牛客网 (nowcoder.com)

小乐乐找最大数_牛客题霸_牛客网 (nowcoder.com)

判断是不是字母_牛客题霸_牛客网 (nowcoder.com)

牛牛的二三七整除_牛客题霸_牛客网 (nowcoder.com)

统计数据正负个数_牛客题霸_牛客网 (nowcoder.com)

网购_牛客题霸_牛客网 (nowcoder.com)

牛牛的快递_牛客题霸_牛客网 (nowcoder.com)

牛牛的通勤_牛客题霸_牛客网 (nowcoder.com)

牛牛的金币_牛客题霸_牛客网 (nowcoder.com)

牛牛的一周_牛客题霸_牛客网 (nowcoder.com)

HTTP状态码_牛客题霸_牛客网 (nowcoder.com)

计算单位阶跃函数_牛客题霸_牛客网 (nowcoder.com)

三角形判断_牛客题霸_牛客网 (nowcoder.com)

牛牛的计划_牛客题霸_牛客网 (nowcoder.com)

计算一元二次方程_牛客题霸_牛客网 (nowcoder.com)

获得月份天数_牛客题霸_牛客网 (nowcoder.com)

小乐乐是否被叫家长_牛客题霸_牛客网 (nowcoder.com)

简单计算器_牛客题霸_牛客网 (nowcoder.com)


第一题

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    //month里面就是月份
    int month = n%100;
    //使用switch语句 
    switch(month)
    {
        //3-5
        case 3:
        case 4:
        case 5:
                printf("spring\n");
                break;
       //6-8         
        case 6:
        case 7:
        case 8:
                printf("summer\n");
                break;
        //9-11
        case 9:
        case 10:
        case 11:
                printf("autumn\n");
                break;
        //12-2
        case 12:
        case 1:
        case 2:
                printf("winer\n");
                break;
        default:
        break;
    }
    return 0;
}

第二题

#include <stdio.h>

int main()
{   //身高体重有小数用float类型
    float height = 0.0;
    float weight = 0.0;
    //float 输入用%f
    scanf("%f%f", &weight, &height);
    //BMI 计算公式 体重/(身高^2)
    float BMI = weight/(height*height);
    //用if else 判断
    if(BMI<=23.9 && BMI>=18.5)
    printf("Normal\n");
    else
     printf("Abnormal\n");
    return 0;
}

第三题

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    scanf("%d%d%d%d", &a, &b, &c, &d);
    //三目操作符:
    // a是不是大于b n 是 a n 是 b
    int n = a>b?a:b;
    //同上
    int m = c>d?c:d;
    printf("%d\n", n>m?n:m);
}

第四题

#include <stdio.h>

int main()
{
    char n = 0;
    //多组输入
    while(scanf("%c", &n)!=EOF)
    {
        //getchar可以将回车抵消
        getchar();
        //这里是字母的ASCII码值
        if((n>=65&&n<=90)||(n>=97&&n<=122))
        {
            printf("%c is an alphabet.\n", n);
        }
        else {
        printf("%c is not an alphabet.\n", n );
        }
    }
}

第五题

#include <stdio.h>

int main()
{
    int a = 0;
    scanf("%d", &a);
    int i = 0;
    //将2 3 7这些除数全部放到数组中
    int arr[3] = {2,3,7};
    //计数器判断有没有能整数的元素
    int count = 0;
    //遍历数组中的元素
    for(i=0; i<3; i++)
    {
        //能整数就打印 且count加一
        if(a%arr[i]==0)
        {
            printf("%d ", arr[i]);
            count++;
        }
    }
    //如果count没变化就打印n
    if(count==0)
    {
        printf("n");
    }
    return 0;
}

第六题

#include <stdio.h>

int main()
{
    int i = 0;
    int Z = 0;
    int F = 0;
    int arr[10] = {0};
    //将输入的数放入arr数组中
    for(i=0; i<10; i++)
    {
        scanf("%d", &arr[i]);
    }
    //遍历数组
    for(i=0; i<10; i++)
    {
        //大于0 z++
        if(arr[i]>0)
        Z++;
        //小于0 f++
        else if(arr[i]<0)
        F++;
    }
    printf("positive:%d\n", Z);
    printf("negative:%d\n", F);
}

第七题

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    //走路的时间
    int s1 = n;
    //打车的时间
    int s2 = n/10 + 10;
    //不能除尽再加一秒
    if(n%10!=0)
    s2+=1;
    //判断
    if(s1>s2)
    printf("v\n");
    else
     printf("w\n");
    return 0;
}

第八题

#include <stdio.h>

//通过题意 我们知道:
//横坐标相等 就判断纵坐标
//纵坐标相等 就判读横坐标
int main()
{
    int x = 0;
    int y = 0;
    scanf("%d%d", &x, &y);
    int x1 = 0;
    int y1 = 0;
    scanf("%d%d", &x1, &y1);
    //横坐标相等
    if(x==x1)
    {
        if(y1>y)
        {
            printf("u\n");
        }
        else {
        printf("d\n");
        }
    }
    //纵坐标相等
    if(y==y1)
    {
        if(x1>x)
        {
            printf("r\n");
        }
        else {
        printf("i\n");
        }
    }
    return 0;
}

第九题

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    //n%7 == 1 2 3 4 5 6 7 
    switch (n % 7)
    {
    case 1:
        printf("Monday\n");
        break;
    case 2:
        printf("Tuesday\n");
        break;
    case 3:
        printf("Wednesday\n");
        break;
    case 4:
        printf("Thursday\n");
        break;
    case 5:
        printf("Friday\n");
        break;
    case 6:
        printf("Saturday\n");
        break;
    case 0:
        printf("Sunday\n");
        break;
    }
    return 0;
}

第十题

#include <stdio.h>

int main()
{
    int n = 0;
    while(scanf("%d", &n)!= EOF)
    {
        switch(n)
        {
            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;
}

第十一题

#include <stdio.h>

int main()
{
    int n = 0;
    //多组输入
    while(scanf("%d", &n)!=EOF)
    {
        //大于0
        if(n>0)
        printf("1\n");
        //等于0
        else if(n==0)
        printf("0.5\n");
        //小于0
        else
         printf("0");
    }
}

第十二题

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    //多组输入
    while(scanf("%d%d%d", &a, &b, &c)!=EOF)
    {
        //两边之和大于第三边
        if(a+b>c && a+c>b && b+c>a)
        {
            //两边相等
            if(a==b || b==c || a==c)
            {
                //三边相等
                if(a==b&&b==c&&a==c)
                {
                    printf("Equilateral triangle!\n");
                }
                else {
                printf("Isosceles triangle!\n");
                }
            }
            else 
            {
                printf("Ordinary triangle!\n");
            }
        }
        else 
        {
            printf("Not a triangle!\n");
        }
    }
    return 0;
}

第十三题

#include <stdio.h>

int main()
{
    int y1 = 0;
    int m1 = 0;
    int d1 = 0;
    int y = 0;
    int m = 0;
    int d = 0;
    //学习时间
    scanf("%d%d%d", &y, &m, &d);
    //查询时间
    scanf("%d%d%d", &y1, &m1, &d1);
    //月和天数相加 *100是为了让月份比天数大
    int a = m*100+d;
    int b = m1*100+d1;
    //比较 
    //注意: 年份大了小了其他什么变都没用
    if(y<y1)
    printf("yes\n");
    else if(y==y1)
    {
        if(b>=a)
        printf("yes\n");
        else
         printf("no\n");;
    }
    else
    printf("no\n");
    
     
}

第十四题

#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)
    {
        //平方根
        float v = b*b - 4*a*c;
        //没有平方根
        if(a==0)
        {
            printf("Not quadratic equation\n");
        }
        else
        {
            //平方根大于0
            if(v>0)
            {
                float x1 = ((-b)-sqrt(v))/(2*a);
                float x2 = ((-b)+sqrt(v))/(2*a);
                printf("x1=%.2f;x2=%.2f\n", x1, x2);
            }
            //平方根小于0
            else if(v<0)
            {
                float n = -b/(2*a);
                float m =sqrt(-v)/(2*a);
                printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", n, m, n, m);
            }
            //平方根等于0
            //这里要注意当结果等于0时直接用-b是不行的,这样子会得到-0.00
            //所以我们要-b+0
            else {
                if((-b+sqrt(v))==0)
                printf("x1=x2=0.00");
                else
            printf("x1=x2=%.2f\n", (-b+sqrt(v))/(2*a));
            }
        }

    }
    return 0;
}

 第十五题

#include <stdio.h>

int main()
{
    int year = 0;
    int month = 0;
    while(scanf("%d%d", &year, &month)!=EOF)
    {
    //我们用数组放天数   1  2  3  4  5  6  7  8  9  10 11 12
        int arr[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        //判断闰年 4年一闰 100年不闰 400年在闰
        //这时2月就是29天
        if(((year%4==0&&year%100!=0) || (year%400==0))&&month==2)
        {
            arr[month]+=1;
            printf("%d\n", arr[month]);
        }
        else {
        printf("%d\n", arr[month]);
        }
    }
    return 0;
}

第十六题

#include <stdio.h>

int main()
{
    int math = 0;
    int chinese = 0;
    int english = 0;
    //输入
    scanf("%d%d%d", &math, &chinese, &english);
    //成绩之和
    int sum = math + chinese +english;
    //判断平均数是不是大于等于60
    if(sum/3.0<60)
    printf("YES\n");
    else
     printf("NO\n");
    return 0;
}

第十七题

 

#include <stdio.h>

int main()
{
    //生产一个数组 存放输入的值
    char ch[20] = {0};
    //输入
    scanf("%s", ch);
    int i = 0;
    int j = 1;
    int n = 0;
    //用循环计算识别码中数字乘积之和
    for(int i = 0; i<11; i++)
    {
        if(ch[i]!='-')
        {
            n += (ch[i]-'0')*j;
            j+=1;
        }
    }
    //m是识别码
    int m = n%11;
    //判断识别码是否正确
    if(m==ch[12]-'0' ||(m==10 && ch[12]=='X'))
    {
        printf("Right\n");
    }
    //不正确
    else 
    {
        //m==10时
        if(m==10)
        {
            //用循环打印字符 最后一个不打印
            for(i=0; i<12; i++)
            {
                printf("%c", ch[i]);
            }
            //这里打印需要的值
            printf("X");
        }
        else
        {
             for(i=0; i<12; i++)
            {
                printf("%c", ch[i]);
            }
            printf("%d", m);
        }
    }
}

第十八题

#include <stdio.h>

int main()
{
    //用浮点数存放两个操作数
    double a = 0;
    double b = 0;
    char ch = 0;
    //多组输入
    while(scanf("%lf%c%lf", &a, &ch, &b)!=EOF)
    {
        //判断是否+-*/
        if(ch!='+'&&ch!='-'&&ch!='*'&&ch!='/')
        printf("Invalid operation!\n");
        else
         {
            //进入相应的计算
            if(ch=='+')
            printf("%.4lf+%.4lf=%.4lf\n", a, b, a+b);
            else if(ch=='-')
            printf("%.4lf-%.4lf=%.4lf\n", a, b, a-b);
            else if(ch=='*')
            printf("%.4lf*%.4lf=%.4lf\n", a, b, a*b);
            else if(ch=='/')
            {
            if(b==0.0)
            //分母为0时:
            printf("Wrong!Division by zero!\n");
            else
            printf("%.4lf/%.4lf=%.4lf\n", a, b, a/b);
            }
            
         };
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/653186.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

附录6-todolist案例

效果是这样的 可以添加新任务&#xff0c;改变任务状态&#xff0c;与筛选任务列表 使用vant创建的项目 使用到了bootstrap&#xff0c;首先 npm install bootstrap进行安装&#xff0c;安装后导入css与js 上中下是三个组件&#xff0c;依次是 todo_input&#xff0c;todo_li…

Python控制LitePoint IQxel-MW 无线网络测试仪

前言 由于项目需要进行WIFI和BT&#xff08;蓝牙&#xff09;的射频测试&#xff0c;所以需要开发一款支持WIFI/BT射频测试的工具。开发射频测试工具的话那肯定离不开仪表的控制。我们项目用的就Litepoint的IQxel-MW无线网络测试仪。这篇文章主要就是介绍一下如何控制仪表以及…

初探core组件:opencv - core组件进阶

core组件进阶 1.访问图像中的像素1.1 图像在内存之中的存储方式1.2 颜色空间缩减1.3 LUT函数&#xff1a;Look up table1.4 计时函数 2. ROI区域图像叠加&图像混合2.1 感兴趣区域&#xff1a;ROI2.2 ROI案例2.2 线性混合操作2.3 计算数组加权和&#xff1a;addWeighted()函…

python-segno:二维码制作

目录 二维码版本 微二维码、数据掩码、数据流、模式 微二维码 数据掩码 数据流 二维码模式 二维码背景 二维码参数 helpers方法 其他库制作及二维码读取&#xff1a;python生成和读取二维码_觅远的博客-CSDN博客 安装&#xff1a;pip install segno import segnoqr …

Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131244269 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

经典30个嵌入式面试问题

经典30个嵌入式面试问题 嵌入式系统的面试经典问题有很多&#xff0c;以下是其中的30个常见问题&#xff1a; 1. 什么是嵌入式系统&#xff1f; 2. 嵌入式系统和普通计算机系统有什么区别&#xff1f; 3. 嵌入式系统的主要应用领域有哪些&#xff1f; 4. 嵌入式系统的设计…

接口测试工具之postman

概念 接口测试是什么&#xff1f; 百度百科给出的解释是&#xff1a; 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间…

构造函数初始化列表的问题

构造函数初始化列表的问题 无法按照表达式中的算符来修改值原因基本原则由此引申的问题使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 针对构造函数传参,使用引用的情况使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 将属性也使用引用总结 无法按…

STM32开发——看门狗

目录 1.独立看门狗 1.1需求 1.2CubeMX设置 1.3函数代码 2.窗口看门狗 2.1需求 ​2.2WWDG配置&#xff1a; 2.3函数代码 3.独立看门狗和窗口看门狗的异同点 1.独立看门狗 监测单片机程序运行状态的模块或者芯片&#xff0c;俗称“看门狗”(watchdog) 。 独立看门狗本质 本…

6、DuiLib控件消息响应处理

文章目录 1、DuiLib控件消息响应处理2、基本的消息响应处理 Notify3、仿 MFC 形式消息响应 DUI_DECLARE_MESSAGE_MAP4、事件委托 MakeDelegate5、消息捕获&#xff08;拦截&#xff09;原生消息 HandleMessage 1、DuiLib控件消息响应处理 <?xml version"1.0" en…

软件测试基础教程学习3

文章目录 软件质量与测试3.1 软件质量问题的原因3.2 对软件质量特性的理解3.3 基于软件质量特性的测试3.4 软件能力成熟度模型&#xff08;CMM&#xff09; 软件质量与测试 3.1 软件质量问题的原因 软件质量问题的原因有以下几种&#xff1a; 软件本身的特点和目前普遍采用的…

AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(五):芯片型号

前言 随着汽车四化的推进,可以说汽车仪表也变成越来越智能化的一个ECU部件了。市面上的车型很多,油车发展了很多年,都有仪表,电车也发展起来了,车型也非常丰富,也都有仪表。仪表现在是作为多屏中一个屏存在的,现在车上最多的就是屏了,最大的要算中控屏了,有的还有空调…

【基础】MQTT -- MQTT 协议详解

【基础】MQTT -- MQTT协议详解 与 Broker 建立连接CONNECT 数据包CONNACK 数据包 断开连接DISCONNECT 数据包 订阅与发布PUBLISH 数据包SUBSCRIBE 数据包SUBACK 数据包UNSUBSCRIBE 数据包UNSUBACK 数据包 本文内容针对 MQTT 3.1.1 版本&#xff0c;从连接、发布与订阅等方面对协…

OpenCV做个熊猫表情

有的时候很想把一些有意思的图中的人脸做成熊猫表情&#xff0c;但是由于不太会ps&#xff0c;只能无奈放弃&#xff0c;so sad... 正好最近想了解下opencv的使用&#xff0c;那就先试试做个简单的熊猫表情生成器把~~ 思路就是&#xff0c;工具给两个参数&#xff0c;一个是人…

最小系统板STM32F103C8T6烧录程序指南

STM32F103C8T6烧录程序 【购买链接】&#xff1a;STM32F103C8T6最小系统板 方法一&#xff1a;使用SWD模式烧录 此时BOOT0 0&#xff0c;BOOT1 X&#xff08;任意&#xff09;&#xff0c;跳线帽接法如下图所示 接好后&#xff0c;若手边有STLINK的话&#xff0c;可以使用…

DAY25:二叉树(十五)修剪二叉搜索树+有序数组转换为二叉搜索树+二叉搜索树转化为累加树

文章目录 669.修剪二叉搜索树思路错误代码示例最开始的写法debug测试逻辑错误&#xff1a;需要两次递归的原因内存操作报错&#xff1a;操作了已经被删除的内存的指针&#xff08;力扣平台delete操作的问题&#xff0c;放IDE里就好了&#xff09;打日志debug示例 力扣平台delet…

高并发之限流-RateLimiter

背景 限流是保护高并发系统的三把利器之一&#xff0c;另外两个是缓存和降级。限流在很多场景中用来限制并发和请求量&#xff0c;比如说秒杀抢购&#xff0c;保护自身系统和下游系统不被巨型流量冲垮等。 限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进…

华为OD机试之 ABR 车路协同场景(Java源码)

ABR 车路协同场景 题目描述 数轴有两个点的序列 A{A1&#xff0c; A2, …, Am}和 B{B1, B2, ..., Bn}&#xff0c; Ai 和 Bj 均为正整数&#xff0c; A、 B 已经从小到大排好序&#xff0c; A、 B 均肯定不为空&#xff0c; 给定一个距离 R&#xff08;正整数&#xff09;&a…

一文详解!Selenium浏览器自动化测试框架

目录 前言&#xff1a; selenium简介 介绍 功能 优势 基本使用 获取单节点 获取多节点 节点交互 动作链 执行JavaScript代码 获取节点信息 切换frame 延时等待 前进和后退 cookies 选项卡管理 异常处理 选项卡切换 无头浏览器 前言&#xff1a; Selenium是…

双功能螯合剂:NOTA-C6-amine,NOTA-C6-氨基,含有大环配体NOTA和氨基

文章关键词&#xff1a;双功能螯合剂&#xff0c;大环化合物 【产品描述】 西安凯新生物科技有限公司供应的​NOTA-C6-amine中含有大环配体NOTA和氨基&#xff0c;其中氨基与羧酸、活化的 NHS 酯、羰基&#xff08;酮、醛&#xff09;等反应。NOTA及其衍生物是新型双功能整合剂…