【牛客网题目解析:从入门到精通的秘籍】173道基础题详解 (第三期)

在这里插入图片描述

😎本文作者:大家好,我是原始豌豆,欢迎来到牛客网刷题解析第三期,感谢你阅读本文欢迎评论,收藏,点赞哦。
😊内容专栏:这里是《牛客网在线编程》专栏,笔者用重金(时间和精力)打造,每道题目提供多种解法,从基础到拓展,希望可以帮到读者们。
😘:写作不易,本文对每道题目提供了多种解法并加上了详细的注释,意在帮助读者锻炼思维灵活性,提高分析、解决问题的能力💓)。

开端
     本次爆更,全篇共13826字,详细解析了每道题目,对其中一些题目采用了四到五种解法,并详细讲解了其中蕴含的算法思想和数学公式,在这篇文章中,我将分享刷题过程中的一些感悟、技巧和策略。同时,我也会分享一些个人的学习心得和经验,希望能帮助到同样热爱编程的你。

     一段寻找自我与极限的旅程,让我们一起踏上这段奇妙的C语言刷题之旅吧!!!!

题目目录

牛客网语法篇基础语法31-50题(C语言实现)

题目网址链接请点这✌️

标注“ * ”符号的题目为重点题目(“ * ” 数越多,难度越高)
本页目录跳转请点下方

BC31 2的n次方计算 *
BC32 你能活多少秒
BC33 统计成绩 *
BC34 计算三角形的周长和面积
BC35 KiKi和酸奶 *
BC36 温度转换
BC37 牛牛的圆
BC38 牛牛的并联电路
BC39 牛牛的水杯 *
BC40 牛牛的等差数列
BC41 牛牛的球
BC42 小乐乐定闹钟 *
BC43 小乐乐排电梯
BC44 (小乐乐与欧几里得)最大公约数与最小公倍数问题 **
BC45 小乐乐改数字 **
BC46 KiKi算期末成绩
BC47 (a+b-c)*d的计算问题
BC48 牛牛的线段
BC49 kiki算数
BC50 你是天才么?

题目

BC31 2的n次方计算

在这里插入图片描述

//在2进制中,2的表示为00000010
//我们只使用移位符来完成2的n次方,仅需使这个2的二进制中的1往左移动。
//如4:二进制为00000100;8:二进制为00001000
//解法一
#include <stdio.h>
int main() {
   
    int n;
    scanf("%d", &n);
    if (n == 0)//n=0时要单独判断一下,因为2^0=1
        printf("%d", 1);
    else
        printf("%d", 2 << (n- 1));//要注意为什么这里是(n-1),因为2本身已经在第二位了,是2的1次方。
    return 0;
}

//解法二  直接将1左移n位数,1的二进制位就是1,n=0时(即2的0次方),1左移0位还是1,n=3时,1左移三位变为100,即2的3次方8。
//这样可以解决计算2的0次方时,在解法一里需要单独判断的问题
#include <stdio.h>
int main() {
   
    int n = 0;
    scanf("%d", &n);
    int ret = 1 << n;  // 使用位操作符左移n位,实际上就是计算2的n次方。  
    printf("%d", ret);
    return 0;
}

BC32 你能活多少秒

在这里插入图片描述

#include <stdio.h>
#include <math.h>// 引入数学库,使得我们可以使用pow函数进行幂运算。  
int main() {
   
    int age = 0;// 定义一个整数变量age,并初始化为0。这将是用户输入的年龄。
    long sec = 0;// 定义一个长整数变量sec,用于存储以秒为单位的时间。初始化为0。  
    scanf("%d", &age);
    sec = age * 3.156 * pow(10, 7);//使用pow函数计算3.156*10^7的值
    printf("%ld", sec);
    return 0;
}

BC33 统计成绩

在这里插入图片描述

//解法一 利用变长数组解决
#include <stdio.h>
int main() {
   
    int n = 0;
    float sum = 0.0f;
    float lower = 100.0f,higher = 0.0f;// 定义两个浮点变量lower和higher,用于存储数据中的最小值和最大值,初始值分别为100和0
    scanf("%d", &n);// 从标准输入读取一个整数n,表示数组的长度 
    float f[n];//变长数组不能初始化,C99标准以后支持变长数组
    for (int i = 0; i < n; i++) {
   
        scanf("%f", &f[i]);//输入五个数据,存入数组,存放时每个数据都跟最大最小值比较一下
        if (f[i] < lower)// 如果读取的数据小于当前最小值,则更新最小值  
            lower = f[i];
        else if (f[i] > higher)//如果读取的数据大于当前最大值,则更新最大值 
            higher = f[i];
        sum += f[i];
    }
    printf("%.2f %.2f %.2f", higher, lower, sum / n);// 输出最大值、最小值和平均值,保留两位小数  
    return 0;
}
//解法二 通过循环每次比较输入的数值和最大最小值的大小,然后更新最大或最小值
//因为有输入缓冲区,所以数据不用存放在数组里
#include <stdio.h>
int main() {
   
    int n = 0;
    float sum = 0.0f;
    float score = 0.0f;
    float lower = 100.0f,higher = 0.0f;// 定义两个浮点变量lower和higher,用于存储数据中的最小值和最大值,初始值分别为100和0
    scanf("%d", &n);// 从标准输入读取一个整数n,表示数据的数量  
    for (int i = 0; i < n; i++) {
   
        scanf("%f", &score);//输入五个数据,是存在输入缓冲区中的,所以可以不用数组
        if (score < lower)// 如果读取的数据小于当前最小值,则更新最小值  
            lower = score;
        else if (score > higher)//如果读取的数据大于当前最大值,则更新最大值  if-else if结构比双if结构效率更高
            higher = score;
        sum += score;
    }
    printf("%.2f %.2f %.2f", higher, lower, sum / n);// 输出最大值、最小值和平均值,保留两位小数  
    return 0;
}

BC34 计算三角形的周长和面积

在这里插入图片描述

//海伦公式,又译作希伦公式、海伦-秦九韶公式。它是利用三角形的三条边的边长直接求三角形面积的公式。表达式为:S=√p(p-a)(p-b)(p-c)。其中p = (a + b + c) / 2;
#include<math.h>
int main() {
   
    double a, b, c, p, l, s;//定义三边长a,b,c定义半周长p,定义周长l,定义面积s
    scanf("%lf%lf%lf", &a, &b, &c);
    p = (a + b + c) / 2;
    l = a + b + c;
    s = sqrt(p * 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值