蓝桥杯-每日刷题-001

圆的面积

一、题目要求

  • 题目描述
    给出圆的半径,请求出圆的面积。PI用3.14159。半径用double类型。
  • 输入格式
    先输入一个整数N(1<=N<=10),表示有N种情况。
    接着N行,每行一个数,表示圆的半径
  • 输出格式
    先输出"Case id:",id表示第几种情况,接着输出相应的圆的面积。结果保留3位小数。
  • 输入样例
    3
    2
    1.1
    70
  • 输出样例
    Case 1: 12.566
    Case 2: 3.801
    Case 3: 15393.791

二、完成代码

#include 
#include 
int main()
{
	int n=0;
	double pi = 3.14159;
	while (std::cin >> n)
	{
		double* arr = new double[n];
		for (int i = 0; i < n; ++i) 
		{
			std::cin >> arr[i];
		}
		
		for (int i=0;i<n;i++)
		{
			double r= arr[i];
			double result = pi * r * r;
			std::cout << std::fixed << std::setprecision(3);
			std::cout << "Case " << i+1 << ": " << result << std::endl;
		};
		delete[] arr;
	}
	return 0}

三、代码解析

第一,保留几位小数的问题。

#include 
std::cout << std::fixed << std::setprecision(3);//填3,故保留三位小数
//这是用于保留几位小数的。只需要把这一行放到输出的前面就可以保证之后的输出都是保留三位小数的。

第二,如何把接受输入的n个数作为半径。
我用的把这n个数放到一个数组里,然后用的时候取出来。(用长度为n的数组做一个过渡)

double* arr = new double[n];//定义一个长度为n的数组
for (int i = 0; i < n; ++i) //依次输入
{
	std::cin >> arr[i];
}

for (int i=0;i<n;i++)      //依次取出
{
	double result = pi * arr[i] * arr[i];  //依次取出,带入公式
	std::cout << std::fixed << std::setprecision(3);
	std::cout << "Case " << i+1 << ": " << result << std::endl;
};
delete[] arr;//因为用的是new,所以一定要记得删除

你可能感兴趣的:(蓝桥杯,算法,c++)