-
#include
using namespace std;
double power(double x,int n);
int eight();
int eight(){
int i,number_10=0,j=0;
char number_8[50];
cout<<"輸入枕數中的位數";
cin>>i;
cout<<"輸入您的西方號碼";
cin>>number_8;
for(;i>0;i--)
if(number_8[i-1]=='0'||number_8[i-1]=='1'||number_8[i-1]=='2'||number_8[i-1]=='3'||number_8[i-1]=='4'||number_8[i-1]=='5'||number_8[i-1]=='6'||number_8[i-1]=='7')
int a;
a=static_cast(number_8[i-1])-48;
number_10+=a*static_cast(power(8,j));
j++;coutdouble power(double x,int n){double val=;
while(n--)
val*=x;
return val;
int main(){
cout<<"十進位數是"return 0;
1.我將陣列更改為 50 種大小(未初始化的變數不能在 vc 中使用)2呼叫 8 的冪的函式的順序是相反的,我新增了乙個新變數 j,每次遞增 1。
-
number_8[i-1]=='0'||number_8[i-1]=='1'||number_8[i-1]=='2'||number_8[i-1]=='3'||number_8[i-1]=='4'||number_8[i-1]=='5'||number_8[i-1]=='6'||number_8[i-1]=='7')
以這麼長為例,以上都可以優化到。
number_8[i-1] >='0' &&number_8[i-1]<='7')
-
`unit' has not been declared
char lpszclassname="窗";中文標點符號。
-
你這有個問題,一是陣列越界,二是排序演算法不完全問題,我在**上打標了,我修改後的**也落後了。
陣列越界了,它把 n 變成了 n-1,我關閉了程式,所以我沒有改變它,我懶得寫乙個 9,因為當 c 得到 n-2 時,它已經比較了 a[n-2] 和 a[n-1](即 a[8] 和 a[9]),也就是說排序完成了。
-
書中的公式是錯誤的,應該是ng=
其次,lg 不應該手動輸入,而是直接初始化為 1。
我們可以推導出:
我們把 m 的平方根看作是面積為 m 的正方形的邊長,為了得到這個邊長,我們首先構造乙個面積為 m 的矩形,既然面積是確定的,我們只需要儲存其中一條邊的長度,lg 預設初始化為 1, 也就是說,這個矩形在開始時是乙個 1*m 的矩形。然後,我們計算ng=,它實際上是矩形的長寬的平均值,作為新矩形的一側,面積保持m(不難看出,經過這樣的操作,這個矩形的長度和寬度更近了),以此類推,我們做的次數越多, 長度和寬度在末端越接近,當長度和寬度的差值在允許誤差範圍內時,我們認為當前儲存邊的長度是 m 的平方根。
同樣,書中的公式是錯誤的。
-
ABS:這是乙個問題,用晶圓廠試試。