编程判断实数
⑴ 在c语言中如何判断输入的两个数是否都是整数
解释下:比如输入 2 3.0 ,读入到3.0时 因为 是以 %d 的形式来读,3后面的 .0计算机就不处理或者识别了,所以得到错误的答案
所以验证是否为整数不能这样验证,可能要当字符串来处理,只要检查里面是否有 小数点或其他符号即可
既然要判断,就应该全面容错,比如错误输入其他字符等,用字符串来判断并不麻烦
如果你真要用 助理那个程序有个地方要改下
if(a-int(a)!=0) ——》 if(a-int(a)<1e-8)
⑵ 编一个C++程序,判断实数A和B,是否相等,包括了前导零和后置零哦!
/声明一下B类
class A
{
B *b; //这里用指针
};
class B
{
A a;
};
int main()
{
}
意思就是说在对象定义的时候,就应该知道它的空间大小,以便以后new,
这里用指针,是一定会知道的,因为指针4个字节,如果是对象本身,你就需要
知道对象的大小,而对象的大小,需要看它类里面的定义!
在这里你无法提供B类的大小!
#include "stdafx.h"
#include<iostream>
#include <string>
using namespace std;
class ra;
class xy
{
public:
xy(double a,double b)
{
x=a;y=b;
}
operator ra&();
public:
double x,y;
};
xy::operator ra&()
{
return *(ra*)this;//通过转换引用,这里定死了,不能为ra里面
的成员赋值,因为赋值,就要知道类的大小!
}
class ra
{
public:
ra(double x,double y)
{
r=x;a=y;
}
operator xy();
public:
double r,a;
};
ra::operator xy()
{
xy aa(10,20);
aa.x=this->r;
aa.y=this->a;
return aa;
}
int main()
{
xy aa(2.4,5.6);
ra R=(ra)aa;
printf("%lf,%lf",R.r,R.a);
return 0;
}
这个就是钻了个空子,因为当前类里面有个this指针引用,那么*this,就是个引用了,所以可以准换一个引用
EXP2:
#include<iostream>
#include <string>
using namespace std;
class ra;
class xy
{
public:
xy(double a,double b)
{
x=a;y=b;
}
operator ra();
public:
double x,y;
};
class ra
{
public:
ra(double x,double y)
{
r=x;a=y;
}
operator xy();
public:
double r,a;
};
xy::operator ra()
{
ra aa(10,20);
aa.r=this->x;
aa.a=this->y;
return aa;
}
ra::operator xy()
{
xy aa(10,20);
aa.x=this->r;
aa.y=this->a;
return aa;
}
int main()
{
return 0;
}
这个就是把顺序换一下,把类的定义放在成员函数的前面
曾格格程序实现的功能是2个类的对象之间可以互相转换
第一种方法不可取,第二种可以!
另外,站长团上有产品团购,便宜有保证
⑶ C语言:编写一个程序,判断输出两个实数a和b的大小,若a大于b,则输出big,否则输出small。
#include<stdio.h>
intmain(){
inta,b;
scanf("%d%d",&a,&b);
if(a>b)printf("big");
elseprintf("small");
return0;
}
⑷ VB如何比较两个实数是否相等
如果小于某一个精度则认为是相等:
判断变量M是否于常数A相等
if abs(M-A) < 1E-6 THEN 相等 ELSE 不等
判断变量M是否大于常数A
if ABS(M-A) > 1E-6 AND M-A > 0 THEN 大于 ELSE 小于等于
判断变量M是否小于常数A
if ABS(M-A) > 1E-6 AND M-A < 0 THEN 大于 ELSE 小于等于
以上代码只能在变量M是single的情况下才走的通
当变量M是double时,需要将1E-6改成1E-14
其实,你要注意一点:VB是支持自动类型转换的,小于1E-6,那么我们假设是1E-7,VB会自动将其处理为double,而double里的小于1E-15,VB根本支持不到这个精度,就处理成0了,那么对于single而言,M-(1E-7)实际上这个结果已经被VB自动处理为一个double了,所以才会出现一个single和一个常数比较时出现的精度误差,
当然,如果觉得这个表达式很复杂,那么可以把所有的参与single类型变量的常数都强制加一个惊叹号比如1E-7!,这样,这个值就是0了,至于误差问题,VB内部会做处理,除非你进行大量的计算,否则这样的误差VB自身可以消除,因为虽然浮点数有误差,但是到达十进制层次的时候,实际上的精度要比给出定义的精度大一些,只要多出一个二进制位,那么理论上说,不会有太大的偏差
⑸ 用c语言编程序判断一个实数a是否等于0。。哪位帮帮忙。谢谢
#include<stdio.h>
#defineEPISTION0.000001/*精度*/
voidmain()
{doublea;
printf("Enterafloatnumber: ");
scanf("%lf",&a);
if((a>=-EPISTION)&&(a<=EPISTION))printf("a==0 ");
elseprintf("a!=0 ");
}
⑹ 在c语言中,如何表示实数啊是用float还是double,俩者有什么不一样吗一般定义实数用哪个那复数呢
在标准C语言中,浮点数有单精度浮点数(float)和双精度浮点数(double)两种,有的C版本还支持第三种长双精度浮点数(long double)。解决方法如下:
1、首先,定义一个双精度数n,用来保存被除数。
⑺ Python判断列表是否全为实数
Python判断列表是全为实数。
try
x=float(input())
if x<=-2
y=-2*x-1
elif x<=1
y=3.0
else
y=2*x+1
print("y=%.2f"%y)
except
print("Input Error!")
Python
是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。
⑻ 输入一个实数判断是正数还是负数的c++语言编程怎么编
#include<iostream>
using namespace std;
int main()
{
double a;
cin>>a;
if(a>1e-10)
cout<<"正数"<<endl;
else if(a<-1e-10)
cout<<"负数"<<endl;
else
cout<<"零"<<endl;
return 0;
}
⑼ 如何用编程语言判断实数R是否为质数
楼上的循环太多次数了,循环int(n^0.5)就可以了
Private Sub CommandButton1_Click()
do
n = InputBox("请输入一个大于1的正整数", "数据输入")
if n>2 then exit do
loop
i = 2
Do
r = n Mod i
i = i + 1
If r = 0 Then
MsgBox (Str(n) + "是质数")
exit sub
end if
if i>=n^0.5 then exit do
Loop
MsgBox (Str(n) + "不是质数")
End Sub