第五题 牛牛学立体
题目描述
输入长方体的长、宽、高,计算它的表面积和体积
输入描述:
输入一行,三个整数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 ; }
运行结果:
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 ; }
运行结果:
第六题 数字反转之-三位数
题目描述
给定一个三位数的整数。然后提取百位,十位和个位,反转输出。
输入描述:
输入一个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 ; }
运行结果:
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 ; }
运行结果:
第七题 上下取整
题目描述
任意给出一个小数,编程求不小于它的最小整数与不大于它的最大整数。
即求出这个小数往下取整与往上取整的值。
输入描述:
输入一行,包含一个浮点数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; }
运行结果:
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; }
运行结果:
第八题 求平均值
题目描述
输入三个数,计算并输出它们的平均数。(保留小数点后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 ; }
运行结果:
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 ; }
运行结果:
好啦,我们第三弹的题目到这里就讲解完成了,希望你们都可以学会这些题目,在学习C语言的道路上更进一步加油。