【C刷题训练营】第三讲(c语言入门训练)

news2024/9/27 23:35:26

前言:

        大家好,我决定日后逐渐更新c刷题训练营的内容,或许能帮到入门c语言的初学者,如果文章有错误,非常欢迎你的指正!

💥🎈个人主页:​​​​​​Dream_Chaser~ 🎈💥

✨✨刷题专栏:http://t.csdn.cn/baIPx

⛳⛳本篇内容:c语言刷题训练营 第三讲(牛客网)

目录

BC25-计算体重指数

题目描述

BC26- 计算三角形的周长和面积

题目描述

BC27-计算球体的体积

题目描述

BC10-成绩的输入输出

题目描述

BC38-变种水仙花数

题目描述:

BC20-kiki算数

题目描述

BC21-浮点数的个位数字

题目描述

BC22-你能活多少秒

题目描述:


BC25-计算体重指数

来源:计算体重指数_牛客题霸_牛客网 (nowcoder.com)

题目描述

问题:
        计算BMI 指数(身体质量指数)。 BMI 指数 (即身体质量指数,简称体质指数又称 体重 ,英文为Body Mass Index,简称 BMI ),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。主要用于 统计 用途,当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时, BMI 是一个中立而可靠的 指标
输入描述 :
一行,两个整数,分别表示体重(公斤),身高(厘米),中间用一个空格分隔
输出描述 :
一行, BMI 指数(保留两位小数)。

示例1

 输入

70 170

输出
24.22

代码实现:

#include <stdio.h>
int main()
{
    //输入
    int weight = 0;
    int high = 0;
    double bmi = 0.0;
    scanf("%d %d", &weight, &high);
    //计算机BMI
    bmi = weight / ((high / 100.0) * (high / 100.0));//身高米数的平方
    //输出
    printf("%.2lf\n", bmi);
    return 0;
}

 解析:

        要得到浮点数,要进行浮点数除法,这里就得保证 / 两端的操作数至少有一个数是浮点数.
          拿出计算器,可以看出 带一位小数*带一位小数的结果是带两位的
         所以最后面printf的时候      .2lf保留两位小数是符合前面的逻辑的

前提知识: 

  •   %.nf:其中 n 是一个整数,用于指定要显示的小数位数。例如,printf("%.2f", 3.1415926); 将输出 3.14只保留两位小数
  •    %e 或 %E:用于以科学计数法表示浮点数。默认情况下,它会使用6位小数和指数形式。例如,printf("%e", 12345.6789); 将输出 1.234568e+04
  •    %.ne 或 %.nE:其中 n 是一个整数,用于指定要显示的小数位数。例如,printf("%.2e", 12345.6789); 将输出 1.23e+04,只保留两位小数,并以指数形式表示。
         
        

 执行:

BC26- 计算三角形的周长和面积

来源:计算三角形的周长和面积_牛客题霸_牛客网 (nowcoder.com)

题目描述

根据给出的三角形 3 条边 a, b, c 0 < a, b, c < 100,000 ),计算三角形的周长和面积。
输入描述 :
一行,三角形 3 条边(能构成三角形),中间用一个空格隔开。
输出描述 :
一行,三角形周长和面积(保留两位小数),中间用一个空格隔开,输出具体格式详见输出样例。
示例 1
输入
3 3 3
输出
circumference=9.00     area=3.90
代码实现:
int main()
{
    double a=0,b=0,c=0;
    double circumference=0.0;//周长
    double area=0.0;//面积

    scanf("%lf %lf %lf",&a,&b,&c);
    circumference=a+b+c;

    //海伦公式
    double p=circumference/2;    
    area=sqrt(p*(p-a)*(p-b)*(p-c));

    printf("circumference=%.2lf area=%.2lf",circumference, area);
    return 0;

}

解析:

注意,输入输出,照着公式写代码就行。
这个题目,如果使用 float 来求解,答案的精度是不够的,所以试错后,使用 double 类型合适
        
         海伦公式:

        计算平方根的函数: 注意计算次方不能写成^

执行:

BC27-计算球体的体积

来源:计算球体的体积_牛客题霸_牛客网 (nowcoder.com)

题目描述

给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4/3*πr^3,其中 π= 3.1415926
输入描述 :
一行,用浮点数表示的球体的半径。
输出描述 :
一行,球体的体积,小数点后保留 3 位。
示例 1
输入
3.0
输出
113.097
#include <stdio.h>
#include<math.h>
int main() {
    double r=0.0;  //半径
    double pi=3.1415926;//圆周率

    scanf("%lf",&r);//输入半径
    double V=(4.0/3)*pi*pow(r,3);//4后面小数点0 可以算出一位小数,pow的意思是r的3次方
    
    //4/3执行整数除法
    printf("%.3lf",V);
}

解析: 🧨✨

注意,输入输出,照着公式写代码就行。
这个题目,如果使用 float 来求解,答案的精度是不够的,所以试错后,使用 double 类型合适。
这里要知道 float 和  double  为啥精度有区别,简单介绍一下。
  1. float是单精度浮点数类型,占用4个字节(32位),用于表示带有小数部分的实数。它可以表示大约6到7个有效数字,并具有约7位的十进制精度。
  2. double是双精度浮点数类型,占用8个字节(64位),用于表示更大范围和更高精度的实数。它可以表示大约15到16个有效数字,并具有约15位的十进制精度。

        因此,double的精度比float更高,可以表示更小的值和更大的值,同时具有更多的有效数字。但是,由于double使用更多的存储空间,需要更多的计算资源和内存。

        在选择使用float还是double时,需要根据具体的应用需求来决定。如果对精度要求不高,而且对内存和计算资源有限,可以使用float如果需要更高的精度或者处理范围更广的数据,可以选择double

执行: 

 注意:

BC10-成绩的输入输出

来源:成绩输入输出_牛客题霸_牛客网 (nowcoder.com)

题目描述

输入 3 科成绩,然后把三科成绩输出,成绩为整数形式。
输入描述 :

一行,3科成绩,用空格分隔,范围(0~100)。

输出描述:

一行,把 3 科成绩显示出来,输出格式详见输出样例。
示例 1
输入
60 80 90
输出
score1=60,score2=80,score3=90
写法一:
        这个写法就正常输入,定义和输出即可。 但注意一点是,变量的定义,不给其初始化为0,默认为随机值。
#include <stdio.h>

int main() {
    int a=0,b=0,c=0;
    
    //输入成绩
    scanf("%d %d %d",&a,&b,&c);
    
    //打印成绩
    printf("score1=%d,score2=%d,score3=%d",a,b,c);
    return 0;
} 

写法二解析:

  1. int score[3] = {0}; 这行声明了一个名为 score 的整数数组,大小为3个元素,并将所有元素初始化为0。这个数组将用于存储用户输入的三个分数。

  2. 变量 i 被声明并初始化为0,它将用作循环计数器。

  3. for 循环用于循环三次,每次循环读取一个分数。在每次迭代中,scanf 函数用于从用户输入中读取一个整数值,并将其存储在 score[i] 中。& 运算符用于获取 score[i] 的内存地址,以供 scanf 存储输入值。

  4. 读取完三个分数后,printf 函数用于在控制台上显示这些分数。格式字符串 "score1=%d,score2=%d,score3=%d" 指定了打印分数的格式,对应的值 score[0]score[1] 和 score[2] 被作为参数传递给 printf

  5. 最后,return 0; 语句用于退出 main 函数并终止程序的执行。

#include <stdio.h>

int main(){
    int score[3]={0};
    int i=0;
    for(i=0;i<3;i++)
    {
        scanf("%d",&score[i]);
    }

    printf("score1=%d,score2=%d,score3=%d",score[0],score[1],score[2]);
    return 0;
}

BC38-变种水仙花数

来源:变种水仙花_牛客题霸_牛客网 (nowcoder.com)

题目描述:

变种水仙花数 - Lily Number:

        把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),1461,1461),如果所有拆分后的乘积之和等于自身,则是一个Lily Number

例如:
655 = 6 * 55 + 65 * 5
1461 = 1 * 461 + 14 * 61 + 146 * 1

求出 5位数中的所有 Lily Number

输入描述:

输出描述:  

一行, 5 位数中的所有 Lily Number ,每两个数之间间隔一个空格
代码实现:
#include <stdio.h>

int main() {
    int  i=0;
    for(i=10000;i<99999;i++)
    {   //判断i是否为Lily Number
        int sum=0;
        int j=0;
      for(j=10;j<=10000;j=j*10)
     {
        sum+=(i/j)*(i%j);
     }
     if(i==sum)
     {
        printf("%d ",i);
     }
    }
    return 0;
}

解析:先看这组数据

再看这组数据:

        这就容易理解很多了。

代码执行:

BC20-kiki算数

来源:kiki算数_牛客题霸_牛客网 (nowcoder.com)

题目描述

问题: KiKi 今年 5 岁了,已经能够认识 100 以内的非负整数,并且能够进行 100 以内的非负整数的加法计算。不过,BoBo 老师发现 KiKi 在进行大于等于 100 的正整数的计算时,规则如下:
        1. 只保留该数的最后两位,例如:对 KiKi 来说 1234 等价于 34
        2. 如果计算结果大于等于 100 , 那么 KIKI 也仅保留计算结果的最后两位,如果此两位中十位为 0 ,则只保留个位。
例如: 45 + 80 = 25
        要求给定非负整数 a b ,模拟 KiKi 的运算规则计算出 a + b 的值。
输入描述 :
一行,输入两个非负整数 a b ,用一个空格分隔。( 0 <= a,b<= 231-1 )。
输出描述 :
针对每组输入,输出按照 KiKi 的运算规则计算出 a+b 的值。
示例 1
输入
45 80
输出
25

 方法一:

        两数分别取模然后再相加,防止其加起来是三位数,之和再取模100

int main()
{
    //定义
    int a=0,b=0;
    int sum=0;

    //输入
    scanf("%d %d",&a,&b);

    //和
    sum=(a%100+b%100)%100;

    printf("%d",sum);
}

方法二:

        两数先加起来,和之后%100,这个很好理解,无论加到多大,只要是大于等于2位数,%100也可以拿到那两位。

int main()
{
    //定义
    int a=0,b=0;
    int sum=0;

    //输入
    scanf("%d %d",&a,&b);

    //和
    sum=(a+b)%100;

    printf("%d",sum);
}

 方法三:

分类讨论:

  • <100直接输出,a与b之和赋值给sum,直接打印sum
  • >=100,a与b之和直接%100,赋值给sum,之后打印sum
int main() {
    int a=0,b=0;
    int sum=0;
    while(scanf("%d %d",&a,&b)!=EOF){
    if(a+b<100)
    {
         sum=a+b;
         printf("%d",sum);
    }
    else if(a+b>=100) 
    {
        sum=(a+b)%100;
        printf("%d",sum);
    }  
    }
    return 0;
}

方法一二三均可通过:

BC21-浮点数的个位数字

来源:浮点数的个位数字_牛客题霸_牛客网 (nowcoder.com)

题目描述

给定一个浮点数,要求得到该浮点数的个位数。

数据范围: 0<n≤200 0< n ≤200 

输入描述:

一行,包括一个浮点数

输出描述:

一行,包含一个整数,为输入浮点数对应的个位数。

示例1

输入:13.141

输出:3

写法一: 

        定义一个浮点数,输入浮点数,强制转换成整型,并用整型变量n接收,打印这个n%10的值。

int main()
{
	double d= 0;
	scanf("%lf", &d);
	int n = (int)d;
	printf("%d",n%10);
    return 0;
}

写法二:

        定义一个整型,输入浮点数,以整型的形式打印。

int main()
{
	int n = 0;
	scanf("%d", &n);
	printf("%d", n % 10);
}

        写法一二均可通过

BC22-你能活多少秒

来源:你能活多少秒_牛客题霸_牛客网 (nowcoder.com)

题目描述:

问题:一年约有 3.156×107 s,要求输入您的年龄,显示该年龄合多少秒。

数据范围: 0< age ≤200 0<age≤200 

输入描述:

一行,包括一个整数age。

输出描述:

一行,包含一个整数,输出年龄对应的秒数。

示例1

输入:20

输出:631200000

参考代码:
#include <stdio.h>
int main() {
    //定义
    int age=0;
    //输入年龄
    scanf("%d",&age);
    long long second=age*3.156e7; 
    //输出
    printf("%lld\n",second);

    return 0;
}

执行: 

        c训练营第三讲到此结束,感谢来访!

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

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

相关文章

如何做见效快的SEO推广?

答案是&#xff1a;见效快的推广可以选择谷歌SEO谷歌Ads双向运营。 关键词研究 对于任何SEO推广&#xff0c;一切始于准确的关键词研究。 使用专业工具 利用如SEMrush、Ahrefs等工具&#xff0c;找到与你业务相关&#xff0c;但竞争程度较低的关键词。 分析竞争对手 查看…

Mysql性能调优——1.深入理解Mysql索引数据结构和算法

本系列所说的Mysql性能调优&#xff0c;主要是针对开发者在实际环境中的sql调优&#xff0c;代码层面上的优化。不涉及到mysql底层代码的调优。 我们知道&#xff0c;一个mysql数据表&#xff0c;数据量小的时候&#xff0c;可能简单的查询耗时不会太久&#xff0c;性能也可以…

孤儿僵尸守护进程的简单理解

孤儿进程&#xff1a; 一个父进程退出&#xff0c;而它的一个或多个子进程还在运行&#xff0c;那么那些子进程将成为孤儿进程。孤儿进程将被init进程所收养&#xff0c;并由init进程对它们完成状态收集工作。 如何模仿一个孤儿进程&#xff1a; 答案是&#xff1a; kill 父…

Docker基础入门:Docker基础总结篇--超详细

Docker基础入门&#xff1a;Docker基础总结篇[docker3要素、docker安装配置、容器使用、镜像管理发布] 一、Docker 3要素1.1、镜像&#xff08;Image&#xff09;1.2、容器&#xff08;Container&#xff09;1.3、仓库&#xff08;Registry&#xff09;1.4 、总结 二、Docker安…

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析详解+思路+Python代码

2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测数据分析 十分激动啊啊啊题目终于出来了&#xff01;&#xff01;官网6点就进去了结果直接卡死现在才拿到题目&#xff0c;我是打算A-E题全部做一遍。简单介绍一下我自己&#xff1a;博主专注建模四年&#xff0c;参与…

手写Spring:第12章-基于JDK、Cglib实现AOP切面

文章目录 一、目标&#xff1a;基于JDK、Cglib实现AOP切面二、设计&#xff1a;基于JDK、Cglib实现AOP切面三、实现&#xff1a;基于JDK、Cglib实现AOP切面3.0 引入依赖3.1 工程结构3.2 AOP切点表达式和使用以及基于JDK和CGLIB的动态代理类图3.3 切点表达式3.3.1 类匹配接口3.3…

一生一芯10——verilator v5.008环境搭建

搜索 verilator 官网&#xff0c;得到网址如下&#xff1a; https://www.veripool.org/verilator/ 点击download 找到 git quick install 可以看到git快捷安装所需命令行 可以看到&#xff0c;需要预先安装下面的包文件&#xff0c;去掉前面的#注释符号进行安装 直接进行下面…

全力助推徐工集团转型升级,迅镭激光智能装备展现硬核实力!

在江苏省徐州市&#xff0c;工程机械产业集群在成功入选首批国家先进制造业集群后&#xff0c;正加快向世界级先进制造业集群跃升。徐工集团作为徐州市“343”创新产业集群“一号产业”链主企业&#xff0c;正发挥着“领头雁”作用。 为了把徐州市“全球工程机械之都”名片擦得…

WebGIS外包开发流程

WebGIS开发流程需要综合考虑前端和后端开发、地理信息数据处理、用户需求和安全性等多个方面。成功的WebGIS应用程序需要不断地进行更新和维护&#xff0c;以适应变化的需求和技术。WebGIS开发是一个复杂的过程&#xff0c;通常包括以下主要步骤。北京木奇移动技术有限公司&…

jmeter 接口快速创建

通过cURL命令创建测试计划 从浏览器获取接口 从postman获取接口

2000-2021年上市公司全要素生产率数据(OLS法、OP法、LP法、GMM法、FE法)(含原始数据+计算代码+结果)

2000-2021年上市公司全要素生产率数据&#xff08;OLS法、OP法、LP法、GMM法、FE法&#xff09;&#xff08;含原始数据计算代码结果&#xff09; 1、时间&#xff1a;2000-2021年 2、指标&#xff1a;股票代码、年份、证券代码、固定资产净额、营业总收入、营业收入、营业成…

[PyTorch][chapter 54][GAN- 1]

前言&#xff1a; GAN playground: Experiment with Generative Adversarial Networks in your browser 生成对抗网络&#xff08;Generative Adversarial Nets&#xff0c;GAN&#xff09;是一种基于对抗学习的深度生成模型&#xff0c;最早由Ian Goodfellow于2014年在《Gener…

Android 性能优化--内存优化分析总结

一、内存优化概念 1.1 为什么要做内存优化&#xff1f; 内存优化一直是一个很重要但却缺乏关注的点&#xff0c;内存作为程序运行最重要的资源之一&#xff0c;需要运行过程中做到合理的资源分配与回收&#xff0c;不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏&…

maven(总)

maven maven的简介 maven主要服务于基于java平台的项目构建&#xff0c;依赖管理和项目信息管理 主要体现在项目和管理 瀑布式开发&#xff1a;在做项目的时候要求有明确的需求&#xff0c;必须按照需求一步一步去做好规划&#xff0c;在项目的运行过程中严格的产出一些文档 …

gdal求矢量图形的形心

gdal求矢量图形的形心 #include "gdal_priv.h" #include "ogrsf_frmts.h"int main() {OGRRegisterAll();OGRPolygon* square_1 new OGRPolygon();OGRLinearRing* ring_1 new OGRLinearRing();// 添加 square_1 的点ring_1->addPoint(0, 0);ring_1-&g…

js--15----闭包是什么?说说闭包的使用场景

1、闭包是什么&#xff1f; 一个函数和对其周围状态&#xff08;词法环境&#xff09;的引用绑定在一起&#xff08;或者说函数被引用包围&#xff09;&#xff0c;这样的组合就是是闭包&#xff08;closure&#xff09;&#xff0c;也就是说&#xff0c;闭包让你在一个内层函数…

win环境安装SuperMap iserver和配置许可

SuperMap iServer是我国北京超图公司研发的基于跨平台GIS内核的云GIS应用服务器产品&#xff0c;通过服务的方式&#xff0c;面向网络客户端提供与专业GIS桌面产品相同功能的GIS服务&#xff0c;能够管理、发布多源服务&#xff0c;包括REST服务、OGC服务等。 SuperMap iserve…

23062C++QT day2

封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员函数&#xff1a;void…

AI 时代的向量数据库、关系型数据库与 Serverless 技术丨TiDB Hackathon 2023 随想

TiDB Hackathon 2023 刚刚结束&#xff0c;我仔细地审阅了所有的项目。 在并未强调项目必须使用人工智能&#xff08;AI&#xff09;相关技术的情况下&#xff0c;引人注目的项目几乎一致地都使用了 AI 来构建自己的应用。 大规模语言模型&#xff08;LLM&#xff09;的问世使得…

监听Helm release资源

监听Helm release资源 基于helm做部署管理工具时&#xff0c;可能想要管理用户已有环境&#xff0c;这时需要将已有环境中的release信息上报到业务系统中。当用户在环境中部署新的release时&#xff0c;也需要实时监听并上报回来。下面将讲解如何去监听release资源 helm rele…