#C语言——刷题攻略:牛客编程入门训练(四):运算(二)

🌟菜鸟主页:@晨非辰的主页

👀学习专栏:《C语言刷题合集》

💪学习阶段:C语言方向初学者

名言欣赏:"代码行数决定你的下限,算法思维决定你的上限。"


目录

[1. 统计成绩](#1. 统计成绩)

[2. 计算三角形的周长和面积(海伦公式、sqrt函数)](#2. 计算三角形的周长和面积(海伦公式、sqrt函数))

[3. KiKi和酸奶](#3. KiKi和酸奶)

[4. 温度转换](#4. 温度转换)

[5. 牛牛的圆](#5. 牛牛的圆)

[6. 牛牛的并联电路](#6. 牛牛的并联电路)

[7. 牛牛的水杯](#7. 牛牛的水杯)

[8. 牛牛的等差数列](#8. 牛牛的等差数列)


前言:在学习编程语言的同时,千万别忘了刷刷题来巩固一下学到的知识,对于牛客网_编程入门系列,小子会持续更新分享刷题过程,其中包括一些基础板块的题目,本次将呈现的运算章节,共8道题。都为基础简单题,大家只当开开胃就行。

~~注意部分标题括号内代表对题目涉及到的知识进行说明!


1. 统计成绩

题目链接:牛客网_BC33 统计成绩_入门

cpp 复制代码
int main()
{
	int num = 0;//定义科目数
	scanf("%d", &num);
	float score[100] = { 0 };
	int i = 0;
	
	for (i = 0; i < num; i++)
		scanf("%f", &score[i]);
	
	//假设第一门最大
	float max = score[0];
	
	//循环判断
	int j = 0;
	for (j = 1; j < num; j++)
	{
		if (score[j] > max)
			max = score[j];//后面的大就替换
	}

	//假设第一门最小
	float min = score[0];
	int k = 0;
	for (k = 1; k < num; k++)
	{
		if (score[k] < min)
			min = score[k];//后面的小就替换
	}

	//求和
	float sum = 0;
	float avr = 0;
	i = 0;
	for (i = 0; i < num; i++)
	{
		sum += score[i];
	}
	avr = sum / num;
	printf("%.2f %.2f %.2f", max, min, avr);
	return 0;
}

解题思路------

--本题的关键在于如何判断谁大谁小,对于输入多组数据,肯定要将数据存在数组中,比较大小据可以用数组下标来进行。


2. 计算三角形的周长和面积(海伦公式、sqrt函数)

题目链接:牛客网_BC34 计算三角形的周长和面积_简单

cpp 复制代码
#include <math.h>//sqrt函数(开平方)
int main()
{
	//接收三条边
	int a = 0;
	int b = 0;
	int c = 0;
	//面积、周长
	scanf("%d%d%d", &a, &b, &c);
	float cir = 0;
	float area = 0;
	cir = a + b + c;
	//海伦公式
	float s = 0.5 * (a + b + c);
	area = sqrt((s * (s - a) * (s - b) * (s - c)));
	printf("circumference=%.2f area=%.2f\n", cir, area);
	return 0;
}

解题思路------

--本题关键是在于使用什么公式进行计算,因为键盘的输入的三条边数值可能是特殊三角形或者一般三角形,所以这里考虑使用海伦公式:面积 = √ s(s−a)(s−b)(s−c), s=2a+b+c,涉及到开根号sqrt函数,要包含头文件 <math.h> ,其余设计较为简单,小子不再赘述。


3. KiKi和酸奶

题目链接:牛客网_BC35 KiKi和酸奶_简单

cpp 复制代码
int main()
{
	int n = 0;//原来有多少盒
	int h = 0;//几分钟一盒
	int m = 0;//几分钟后
	int a = 0;//剩余

	while (scanf("%d%d%d", &n, &h, &m) != EOF)
	{
		int b = m / h;//求喝了几盒,
		if (m % h != 0)//如果不是整数,将正在喝的部分算入
		{
			b += 1;
		}
		a = n - b;
		printf("%d", a);
	}
	return 0;
}

解题思路------

--本题的关键在于如果只单纯的整型算 m/h ,这只能计算出喝完几盒,有可能算出小数表示正在喝,所以要进行判断是否能整除。


4. 温度转换

题目链接:牛客网_BC36 温度转换_入门

cpp 复制代码
int main()
{
	float f = 0;
	scanf("%f", &f);
	float c = 5.0/9.0 * (f-32);
	printf("%.3f\n", c);
	return 0;
}

解题思路------

--本题要注意的点是:进行除法时,要注意至少保证一个操作数为浮点型,不然会导致结果为0!


5. 牛牛的圆

题目链接:牛客网_BC37 牛牛的圆_入门

cpp 复制代码
int main()
{
	float r = 0;
	scanf("%f", &r);
	printf("%.2f\n", 3.14 * r * r);
	return 0;
}

解题思路------

--本题要注意小数位数的限制。


6. 牛牛的并联电路

题目链接:牛客网_BC38 牛牛的并联电路_入门

cpp 复制代码
int main()
{
	float r1 = 0;
	float r2 = 0;
    scanf("%f%f", &r1, &r2);
	printf("%.1f", 1 / ((1 / r1) + (1 / r2)));
	return 0;
}

解题思路------

--本题只要写出并联电阻公式即可,嘴遁~~


7. 牛牛的水杯

题目链接:牛客网_BC39 牛牛的水杯_中等

cpp 复制代码
int main()
{
	int h = 0;
	int r = 0;
	scanf("%d%d", &h, &r);
	int num = 10000 / (3.14 * h * r * r) + 1;
	printf("%d\n", num);
	return 0;
}

解题思路------

--本题和第3题类似,要将未喝完的部分算上。


8. 牛牛的等差数列

题目链接:牛客网_BC40 牛牛的等差数列_入门

cpp 复制代码
int main()
{
	int a = 0;
	int b = 0;
    scanf("%d%d", &a, &b);
	int dif = b - a;
	printf("%d", b + dif);
	return 0;
}

解题思路------

--本题小子依旧嘴遁~~


相关刷题系列回顾 :

#C语言------刷题攻略:牛客编程入门训练(三):输出格式化、基本运算符

#C语言------刷题攻略:牛客编程入门训练(四):运算(一)
结语:本篇文章就到此结束了,本文主要是练习有关运算的题目,后续的题目练习难度会慢慢上来,但总体来说不会太难,喜欢的朋友们,一起来学习吧!欢迎三连~

相关推荐
是苏浙几秒前
零基础入门C语言之枚举和联合体
c语言·开发语言
报错小能手3 分钟前
C++笔记(面向对象)静态联编和动态联编
开发语言·c++·算法
小肖爱笑不爱笑11 分钟前
2025/11/5 IO流(字节流、字符流、字节缓冲流、字符缓冲流) 计算机存储规则(ASCII、GBK、Unicode)
java·开发语言·算法
Elias不吃糖12 分钟前
第四天学习总结:C++ 文件系统 × Linux 自动化 × Makefile 工程化
linux·c++·学习
阿猿收手吧!15 分钟前
【成长经历】秋招经历/技术之路分享
经验分享
手握风云-24 分钟前
Java 数据结构第二十八期:反射、枚举以及 lambda 表达式
java·开发语言
ᐇ95928 分钟前
Java Vector集合全面解析:线程安全的动态数组
java·开发语言
雍凉明月夜33 分钟前
人工智能学习中深度学习之python基础之 类
python·学习
王同学要变强1 小时前
【深入学习Vue丨第二篇】构建动态Web应用的基础
前端·vue.js·学习
好奇龙猫1 小时前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(14):文法和单词-第三课
学习