【牛客刷题】带你在牛客刷题第三弹(C/C++语言基础)下

简介: 笔记

第五题 牛牛学立体


题目描述

输入长方体的长、宽、高,计算它的表面积和体积


输入描述:


输入一行,三个整数a,b,c,以空格隔开,分别表示长宽高。

0 <= a, b,c <= 1000

输出描述:

输出两行,每行一个整数,分别表示表面积和体积


示例1


输入

1 1 1

输出

6

1


讲解:

这道题目考察了我们矩形体的面积和体积公式,其表面积=(长×宽+宽×高+长×高)×2 ;其体积 = 长×宽×高 ;


又因为这题输入输出全为整数,所以我们只需要使用int类型存储数据即可。


AC:

C语言:


#include<stdio.h>
int main()
{
    int a, b ,c ;
    scanf("%d%d%d",&a,&b,&c) ;
    printf("%d\n", (a*b+b*c+c*a)*2) ;
    printf("%d\n", a*b*c) ;
    return 0 ;
}

运行结果:

9.png



C++:

#include<iostream>
using namespace std ;
int main()
{
    int a, b ,c ;
    cin >> a >> b >> c ;
    cout << (a*b+b*c+c*a)*2 << endl ;
    cout << a*b*c << endl ;
    return 0 ;
}

运行结果:

10.png



第六题 数字反转之-三位数


题目描述

给定一个三位数的整数。然后提取百位,十位和个位,反转输出。


输入描述:

输入一个3位整数n (100<= n<= 999)

输出描述:

一个正整数


示例1

输入

120

输出

021


讲解:

关于这道题目C语言和C++我给出两个不同解法,C语言解法基础针对次题目,C++解法相对而言高级一些,并且可以适用更多情况 。


先说C语言解法,因为题目中已经提到了三位数,所以我们直接创捷一个char类型的数组存放每个位数的数,之后我么能利用for循环,将数组从下标2-0依次输出即可。


然后我们来看C++这种解法,这种解法就稍微高级一点,他就不限制你输入的位数了,你输入多少位都可以逆转,首先我们创建一个string类型的字符串,并存入字符串,之后我们使用一个size()函数去测量其长度,依旧时for循环反过来输出相应数字即可。


size()函数:size()是取字符串长度的,其具体用法为:


a.size() ; //a为想要测量长度的字符串 。


AC:

C语言:

#include<stdio.h>
int main()
{
    char a[3] ;
    for(int i=0; i<3; i++)
    {
        scanf("%c",&a[i]) ;
    }
    for(int i=2; i>=0; i--)
    {
        printf("%c",a[i]) ;
    }
    return 0 ;
}

 运行结果:

11.png



C++:


#include<iostream>
using namespace std ;
int main()
{
    string a ;
    cin >> a ;
    for(int i=a.size()-1; i>=0; i--)
    {
        cout << a[i] ;
        }
    return 0 ;
}


 运行结果:

12.png



第七题 上下取整


题目描述

任意给出一个小数,编程求不小于它的最小整数与不大于它的最大整数。


即求出这个小数往下取整与往上取整的值。


输入描述:


输入一行,包含一个浮点数a,保证a≥0

输出描述:


输出两行,第一行表示a往下取整,第二行表示a往上取整。

示例1


输入

3.5

输出

3

4


备注:

ceil(x)函数返回大于等于x的最小double类型整数  例如:ceil(3.8) 返回 4.0

讲解:

来看这道题,其实我们这道题目需要了解两个函数就是floor()和ceil() ;


我们使用math库去调用这两个函数,而这两个函数分别是向下取整和向上取整,我们只需将想要取整的数填入括号内即可。


是不是发现这样这道题目就简单很多啊,我们在写题的时候要合理利用这些函数去进行解题。这样可以最大效率的去解答题目 。


AC:

C语言:


#include<stdio.h>
#include <math.h>
int main()
{
    float num;
    scanf("%f",&num) ;
    int floor_num = floor(num) ;
    int ceil_num = ceil(num) ;
    printf("%d\n%d\n",floor_num ,ceil_num) ;
    return 0;
}

运行结果:

13.png



C++:


#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double num;
    cin >> num;
    int floor_num = floor(num) ;
    int ceil_num = ceil(num) ;
    cout << floor_num << endl ;
    cout << ceil_num << endl ;
    return 0;
}


运行结果:

14.png



第八题 求平均值


题目描述

输入三个数,计算并输出它们的平均数。(保留小数点后6位)


输入描述:


输入一行,包含三个整数a, b, c,在int范围内

输出描述:


输出一行, 包含一个浮点数,小数点后保留六位

示例1


输入


4 5 6

输出


5.000000


讲解:

大家应该都不陌生平均值的求法,就是所有的数相加除以其个数就可以了,那我们在写这道题目的时候只需要记得在进行计算的时候,需要使用强制转换类型就可以了,其他的就按正常输入输出即可,并且记得保留6位小数。


AC:

C语言:


#include<stdio.h>
int main()
{
    int a, b , c ;
    scanf("%d%d%d",&a,&b,&c) ;
    double sum = (double)(a+b+c)/3 ;
    printf("%.6f\n",sum) ;
    return 0 ;
}

运行结果:

15.png


C++:


#include<iostream>
using namespace std ;
int main()
{
    int a, b , c ;
    cin >> a >> b >> c ;
    double sum = (double)(a+b+c)/3 ;
    printf("%.6f\n",sum) ;
    return 0 ;
}

运行结果:

16.png



好啦,我们第三弹的题目到这里就讲解完成了,希望你们都可以学会这些题目,在学习C语言的道路上更进一步加油。


相关文章
|
2月前
|
C++
C++ 语言异常处理实战:在编程潮流中坚守稳定,开启代码可靠之旅
【8月更文挑战第22天】C++的异常处理机制是确保程序稳定的关键特性。它允许程序在遇到错误时优雅地响应而非直接崩溃。通过`throw`抛出异常,并用`catch`捕获处理,可使程序控制流跳转至错误处理代码。例如,在进行除法运算或文件读取时,若发生除数为零或文件无法打开等错误,则可通过抛出异常并在调用处捕获来妥善处理这些情况。恰当使用异常处理能显著提升程序的健壮性和维护性。
58 2
|
2月前
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
56 0
|
6天前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
12 5
|
10天前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
10天前
|
存储 分布式计算 编译器
深入计算机语言之C++:C到C++的过度-2
深入计算机语言之C++:C到C++的过度-2
|
10天前
|
编译器 Linux C语言
深入计算机语言之C++:C到C++的过度-1
深入计算机语言之C++:C到C++的过度-1
|
1月前
|
JavaScript 前端开发 测试技术
一个google Test文件C++语言案例
这篇文章我们来介绍一下真正的C++语言如何用GTest来实现单元测试。
16 0
|
2月前
|
编译器 C++ 容器
C++语言的基本语法
想掌握一门编程语言,第一步就是需要熟悉基本的环境,然后就是最重要的语法知识。 C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。 对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。 类 - 类可以定义为描述对象行为/状态的模板/蓝图。 方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。 即时变量 - 每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。 完整关键字
55 2
|
3月前
|
前端开发 编译器 程序员
协程问题之为什么 C++20 的协程代码比其他语言的协程 demo 长很多如何解决
协程问题之为什么 C++20 的协程代码比其他语言的协程 demo 长很多如何解决
|
4月前
|
存储 Java C#
C++语言模板类对原生指针的封装与模拟
C++|智能指针的智能性和指针性:模板类对原生指针的封装与模拟