1樓:斯普林特老師
你事先定義了num,然後a,b,c就已經定下來了,而且沒有給num賦初值,這樣的話,num的值就不是你說了算的了。
你的程式執行流程是這樣的:
定義一個數叫num,值是隨機數;(方便起見我們認為它是123)
它的個位數是c=3;十位數是b=2,百位數是a=1;
num從100開始試,如果等於a^3+b^3+c^3=1+8+27=36就輸出。
顯然這和「水仙花數」的定義是違背的。原因在於abc都被你早就定下來了,後面num變了,你的abc也應該變。
修改方法是把求個十百的三句寫在迴圈體裡面就對了。
關於問題補充:很簡單,程式執行有先後,你先定義了abc並賦了值,後面並沒有更改過abc的值,自然程式會認為abc是固定的。由於num是變的,所以對於每一個num,都必須算一遍它的abc,所以abc應該放在迴圈體裡,每更新一個num,就要算一下num的個十百分別是多少,然後再驗證它是不是符合條件。
這是思路,你的那個思路是完全不對的。
2樓:匿名使用者
修改如下:
#include
using namespace std;
int main()
return 0;
3樓:匿名使用者
#include
using namespace std;
int main()
}return 0;}
4樓:
int c=num%10;
int b=num/10%10;
int a=num/100;
if (num==a*a*a+b*b*b+c*c*c) cout< 5樓:獨行俠之 我想告訴你的是,在c++語言中,^不表示乘方,這是在vb語言中使用的。在c++語言中,如果要表示連乘,就只能連續寫出來,例如如果是2的3次方,就只能寫成2*2*2的形式,否則編譯器識別不出來。 求解一道c++程式設計題 6樓:小黑哎啊 #include #include #include using namespace std; class str{ public: char a[111]; int b[111],k=0,sum=0,x=0; void find() for(int i=0;iif(a[i]>='0'&&a[i]<='9') b[k++]=a[i]-'0'; for(int i=k-1;i>=0;i--)sum+=b[i]*pow(10,x); x++; cout class str s; cin.getline(s.a,111); s.find(); return 0; 求解一道簡單的c語言程式設計題 7樓:匿名使用者 #include int search(int i,int j,float a); main() int search(int i,int j,float a){if(j==6) return i; else {if(a[i]寫的有點麻煩,呵 呵,以後版有空權再改改 最簡單的排序方法是氣泡排序方法。這種方法的基本思想是,將待排序的元素看作是豎著排列的 氣泡 較小的元素比較輕,從而要往上浮。在氣泡排序演算法中我們要對這個 氣泡 序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個序列,並時刻注意兩個相鄰的元素的順序是否正確。如果發現兩個相鄰元素的順序不對,即 輕... 1 下標法實現 include include void main if p i s p i 1 u p i 2 b p i 3 s p i 4 t p i 5 r 這一步可替換成 程式不僅僅是寫出來的,得畫流程圖,然後再慢慢細化。在做試驗啊,不能有一點困難就往後面躲啊兄弟。求一道c程式設計題的做法... 我來湊一下熱鬧 呵呵 1 主函式裡的p fun std,n stu p 所以 stu 2 題目 找出指定編號 函式用for來求出std i num 與num對比,當兩個字串相同裡就反回該學生!所以答案為 std i num 樓上 magipan 說用std i num,我覺得不對,因為 的左邊應該是...一道c語言程式設計題急求答案,一道C語言程式設計題 急求答案
一道c程式設計題目,求高手,一道C程式設計題目,求高手。。。。。。。。
求解一道c語言填空題答案,求解一道C語言填空題答案