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

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

前言:

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

💥🎈个人主页:Dream_Chaser~ 🎈💥

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

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


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,只保留两位小数,并以指数形式表示。

831621cec1514e5fb7c4bfec36f123f1.png

执行:

c15345b12d6b472e8b6de3702bab7c72.png


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


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


题目描述

根据给出的三角形3条边a, b, c0 < 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类型合适

    海伦公式:

cd4243d02de5422f9b90150a9cef3bc0.png

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

5b0d282671934ee5a8b66352c777db16.png

执行:

15d705330ab4402d81066a50b545b12c.png


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类型合适。

这里要知道floatdouble 为啥精度有区别,简单介绍一下。

  1. float是单精度浮点数类型,占用4个字节(32位),用于表示带有小数部分的实数。它可以表示大约6到7个有效数字,并具有约7位的十进制精度。
  2. double是双精度浮点数类型,占用8个字节(64位),用于表示更大范围和更高精度的实数。它可以表示大约15到16个有效数字,并具有约15位的十进制精度。

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

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

执行:

63225ebcdf664d2c9529e397e9d018f3.png

注意:

b74f180695a049aea93a043adc316579.png

相关文章
|
2月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
62 2
|
4月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
2月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
30 1
|
2月前
|
机器学习/深度学习 编译器 C语言
C语言刷题(中)(保姆式详解)
C语言刷题(中)(保姆式详解)
16 0
|
2月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
4月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
4月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
60 1
|
4月前
|
C语言
【C语言刷题训练】——第7节(含代码与分析思路)
【C语言刷题训练】——第7节(含代码与分析思路)
|
4月前
|
测试技术 C语言 C++
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
|
4月前
|
存储 C语言
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)