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

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

目录

题目链接

第一题

第二题

第三题

第四题

第五题

第六题

第七题

第八题

第九题

第十题

第十一题

第十二题

第十三题

第十四题

第十五题

第十六题

第十七题

第十八题


题目链接四季_牛客题霸_牛客网 (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;
}
目录
相关文章
|
1月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
66 5
|
3月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
25天前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
28 8
|
1月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
1月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
1月前
|
机器学习/深度学习 编译器 C语言
C语言刷题(中)(保姆式详解)
C语言刷题(中)(保姆式详解)
14 0
|
1月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
15 0
|
1月前
|
程序员 C语言
【C语言】分支语句(逻辑运算符与关系运算符)
【C语言】分支语句(逻辑运算符与关系运算符)
|
3月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
48 2
|
3月前
|
C语言
C语言分支语句
C语言分支语句
31 4