#7305: 請教有關C++ CE狀況的解決


gil (恆誠)

學校 : 臺北市立松山高級工農職業學校
編號 : 27718
來源 : [203.64.46.82]
最後登入時間 :
2014-11-12 11:28:00
a040. 阿姆斯壯數 | From: [112.104.73.16] | 發表日期 : 2012-12-16 20:48

在解題時比較難處理的是系統轉換問題, 不知各位高手有無解決方法?

系統回應是

 CE ()

編譯錯誤

code_1333366.cpp: In function ‘int main()’:

code_1333366.cpp:20: error: lvalue required as left operand of assignment

程式碼在 Visual Studio 2010 C++中編譯執行是正常

 #include<iostream>

#include <cmath>

using namespace std;

 

int main(void){

int a,b;

while( cin >>a>>b ){

if(a>b){ //數值交換,使小數在前

int temp=a;

a=b;

b=temp;

}

bool flag=0; //有否阿姆斯壯數旗標

for(int i=a;i<=b;i++){

int k=log10((float)i)+1; //取得位數

int sum=0,value=i,number;

while(value){

number=value%10; //取得每位數值

value/=10;

(int)sum+=pow(number,(float)k);

}

if(sum==i){

cout<< i<<" ";

flag=1;

}

}

if(flag==0)

cout <<"none";

cout <<endl;

}

return 0;

}

 
#7306: Re:請教有關C++ CE狀況的解決


gil (恆誠)

學校 : 臺北市立松山高級工農職業學校
編號 : 27718
來源 : [203.64.46.82]
最後登入時間 :
2014-11-12 11:28:00
a040. 阿姆斯壯數 | From: [112.104.73.16] | 發表日期 : 2012-12-16 22:25

 

int k=log10((float)i)+1; //取得位數

int sum=0,value=i,number;

while(value){

number=value%10; //取得每位數值

value/=10;

(int)sum+=pow(number,(float)k);

改用 DEV C++編譯,就找到問題了,相容性問題,改成如下就OK

for(int i=a;i<=b;i++){

int p=log10((float)i)+1; //取得位數

float k=p;

int sum=0,value=i,number;

while(value){

number=value%10; //取得每位數值

value/=10;

sum+=pow(number,k);

}

 
ZeroJudge Forum