球的半径和体积

题目描述

输入球的中心点和球上某一点的坐标,计算球的半径和体积

输入描述:

球的中心点和球上某一点的坐标,以如下形式输入:x0 y0 z0 x1 y1 z1

输出描述:

输入可能有多组,对于每组输入,输出球的半径和体积,并且结果保留三位小数

为避免精度问题,PI值请使用arccos(-1)。

示例1

输入

0 0 0 1 1 1 

输出

1.732 21.766

思路:

这道题目可能思路很清晰,但是提交了好几次都是超时,并不知道哪里错啦,后来看了别人家的博客,π用acos(-1)来表示,查了资料:acos(-1)是用的数学函数,但是我写3.1415926运行就是超时的,总之还是多练习吧。

代码:

#include<stdio.h>
#include<math.h>
int main(){
	double x0, y0, z0, x1, y1, z1;
	while(scanf("%lf%lf%lf%lf%lf%lf",&x0,&y0,&z0,&x1,&y1,&z1)!=EOF){
	
	double  r;
	double  area;
	r=sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)+(z1-z0)*(z1-z0));
	area = 4*acos(-1)*r*r*r/3;
	printf("%.3lf %.3lf\n",r,area); 
}
}

同时需要记忆的就是:

float用%f

double用%lf

 

Java实现一个模型、两个视图和两个控制器的功能软件,即采用MVC模式或者说是观察者模式,本程序通过输入半径,显示体形状,面积体积等 Sphere.java package Model; import java.util.Observable; public class Sphere extends Observable { private double radius;//半径 private double area;//体面积 private double volume;//体积 public Sphere() { radius=100d; area=4*Math.PI*Math.pow(radius, 2); volume=4*Math.PI*Math.pow(radius, 3)/3; } public double getRadius() { return radius; } public double getArea() { return area; } public double getVolume() { return volume; } public void setRadius(double radius) { this.radius = radius; this.area = 4*Math.PI*Math.pow(radius, 2); this.volume=4*Math.PI*Math.pow(radius, 3)/3; this.setChanged(); this.notifyObservers(); } } textView.java package View; import java.util.Observer; import java.util.Observable; import java.text.NumberFormat; import javax.swing.*; import Controller.TextController; import Model.Sphere; import java.awt.*; import java.awt.event.*; public class TextView extends JPanel implements Observer { private JLabel radiusLab;//提示用户输入半径 private JTextField radiusTextField;//接受用户输入半径 //private JLabel radiusRang; private JLabel areaLab;//显示体面积 private JTextField areaTextField;//显示输入半径对应的面积 private JLabel volumeLab;//显示体积 private JTextField volumeTextField;//显示输入半径对应的体积 public TextView() { try { Init(); } catch(Exception e) { e.printStackTrace(); } } private void Init() throws Exception { radiusLab=new JLabel("半径"); radiusLab.setForeground(new Color(0,165,168)); //radiusRang=new JLabel("[0-200]"); radiusTextField = new JTextField(12); radiusTextField.setForeground(new Color(223,100,158)); radiusTextField.setBackground(new Color(210,204,230)); areaLab=new JLabel("体面积"); areaLab.setForeground(new Color(0,165,168)); areaTextField = new JTextField(12); areaTextField.setBackground(new Color(193,219,219)); areaTextField.setEditable(fal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值