✨✨✨【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(三)✨✨✨

🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷


🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷🐷


💚BC25、计算体重指数

描述:

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

输入描述:

一行,两个整数,分别表示体重(公斤),身高(厘米),中间用一个空格分隔

输出描述:

一行,BMI指数(保留两位小数)

示例:

输入:
70 170

输出:
24.22

代码:

#include <stdio.h>
int main()
{
	int weight = 0;
	int high = 0;
	scanf("%d %d", &weight, &high);
	//结果为小数,所以用一个浮点型数据来接收
    //high / 100如果只是这样那么结果是一个整数,那么必须一端为小数,所以改为high / 100.0
    float BMI = weight / ((high / 100.0)* (high / 100.0));
	//保留两位小数.2
    printf("%.2f\n", BMI);

	return 0;
}

结果:

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

描述:

根据给出的三角形3条边a, b, c(0 < a, b, c < 100,000),计算三角形的周长和面积

输入描述:

一行,三角形3条边(能构成三角形),中间用一个空格隔开

输出描述:

一行,三角形周长和面积(保留两位小数),中间用一个空格隔开,输出具体格式详见输出样例

示例:

输入:
3 3 3

输出:
circumference=9.00 area=3.90

代码:

#include <stdio.h>
#include <math.h>
int main()
{
	float a = 0.0;
	float b = 0.0;
	float c = 0.0;
	float circumference = 0.0;
	float area = 0.0;

	scanf("%f %f %f", &a, &b, &c);

	circumference = a + b + c;
	float p = circumference / 2;
	area = sqrt(p * (p - a) * (p - b) * (p - c));
	printf("circumference=%.2f area=%.2f\n", circumference, area);

	return 0;
}

结果:

扩展:

  • 海伦公式
  • 求平方根函数sqrt


💛BC27、计算球体的体积

描述:

给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4/3*πr^3,其中 π= 3.1415926

输入描述:

一行,用浮点数表示的球体的半径

输出描述:

一行,球体的体积,小数点后保留3

示例:

输入:
3.0

输出:
113.097

代码:

#include <stdio.h>
int main()
{
	double r = 0.0;
	double v = 0.0;
	double pi = 3.1415926;

	scanf("%lf", &r);
	// 4.0 / 3注意这里必须要有一端为小数,否则计算结果就为1
    v = 4.0 / 3 * (pi * r * r * r);
	printf("%.3lf\n", v);

	return 0;
}

结果:

扩展:

计算一个数的次方

#include <stdio.h>
#include <math.h>
int main()
{
	//pow函数返回值为double类型树蕨,所以强制性转换为int类型
    int a = (int)pow(2,5);
	printf("%d\n", a);

	return 0;
}

💙BC10、成绩的输入输出

描述:

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

输入描述:

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

输出描述:

一行,把3科成绩显示出来,输出格式详见输出样例

示例:

输入:
60 80 90

输出:
score1=60,score2=80,score3=90

代码:

//方法一
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d %d %d", &a, &b, &c);
	printf("score1=%d,score2=%d,score3=%d", a, b, c);

	return 0;
}

//方法二
#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\n", score[0], score[1], score[2]);

	return 0;
}

结果:

💜BC38、变种水仙花

描述:

变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1461,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 < 100000; i++)
	{
		int j = 0;
		int sum = 0;
		for (j = 10; j <= 10000; j *= 10)
		{
			sum += (i / j) * (i % j);
		}
		if (i == sum)
		{
			printf("%d ", i);
		}
	}

	return 0;
}

结果:

扩展:

🤎BC20、kiki算数

描述:

问题:KiKi今年5岁了,已经能够认识100以内的非负整数,并且能够进行 100 以内的非负整数的加法计算。不过,BoBo老师发现KiKi在进行大于等于100的正整数的计算时,规则如下:

1.只保留该数的最后两位,例如:对KiKi来说1234等价于342.如果计算结果大于等于 100, 那么KIKI也仅保留计算结果的最后两位,如果此两位中十位为0,则只保留个位。

例如:45+80 = 25

要求给定非负整数 a和 b,模拟KiKi的运算规则计算出 a+b 的值

输入描述:

一行,输入两个非负整数a和b,用一个空格分隔。(0 <= a,b<= 2^31-1

输出描述:

针对每组输入,输出按照KiKi的运算规则计算出 a+b 的值

代码:

//方法一
#include <stdio.h>
int main()
{
	int num[2] = { 0 };
	int i = 0;
	for (i = 0; i < 2; i++)
	{
		scanf("%d", &num[i]);
	}
	int sum = (num[0] % 100 + num[1] % 100) % 100;
	printf("%d\n", sum);

	return 0;
}

//方法二
#include <stdio.h>
int main()
{
	int num[2] = { 0 };
	int i = 0;
	for (i = 0; i < 2; i++)
	{
		scanf("%d", &num[i]);
	}
	int sum = (num[0]+num[1]) % 100;
	printf("%d\n", sum);

	return 0;
}

结果:

🖤BC21、浮点数的个位数字

描述:

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

输入描述:

一行,包括一个浮点数

输出描述:

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

示例:

输入:
13.141

输出:
3

代码:

//方法一
#include <stdio.h>
int main()
{
	float a = 0.0;
	scanf("%f", &a);
	int b = (int)a;
	printf("%d\n", b % 10);

	return 0;
}

//方法二
#include <stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
    //如果这里输入的是浮点数,用int来接收,那么得到的将会是整数部分
	printf("%d\n", a);
	printf("%d\n", a % 10);

	return 0;
}

结果:

💚BC22、你能活多少秒

描述:

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

输入描述:

一行,包括一个整数age(0<age<=200)

输出描述:

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

示例:

输入:
20

输出:
631200000

代码:

//方法一
#include <stdio.h>
#include <math.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
	int a = pow(10, 7);
	long long int second = 3.156 * a;
	printf("%lld\n", age * second);

	return 0;
}

//方法二
#include <stdio.h>
int main()
{
	int age = 0;
	scanf("%d", &age);
    //这里long long int避免计算超出范围   3.156*10^7在VS编译器中这样写:3.156*e7
	long long int second = age * 3.156e7;
	printf("%lld\n", second);

	return 0;
}

结果:

离开前,别忘了👍关注💡收藏💖
希望本文能够对大家有帮助~!


🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀往期刷题文章分享🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(一)

【C语言】带你用最短的时间刷题(附解题思路、具体代码)不断更新(二)

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值