編程判斷實數
⑴ 在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