[問題] 小程式請幫忙看看哪裡寫錯了(已完成)

看板C_and_CPP (C/C++)作者 (未來富翁)時間14年前 (2012/01/20 23:14), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C語言(用DEV C++撰寫的) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 年利率的部分怪怪的,好像不能輸入小數點,一般的利率到應該是幾點幾%的吧? (%我已經用0.01取代了,還是可以直接用%啊?) 餵入的資料(Input): 不能輸入小數點 預期的正確結果(Expected Output): 應該可以輸入小數點,並正常顯示出數字 錯誤結果(Wrong Output): 不能輸入小數點 且每次輸入不同的數字(200或500),顯示的答案都是268684以修改完,正常了 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdio.h> #include<stdlib.h> int main() { int x=1000000;//預設X為本金一百萬 float y;//y為年利率 printf("請輸入年利率: "); scanf("%f",&y);//輸入年利率 float p=0.01;//p為百分比 int z;//z為月利息 z=x*y*p*1/12;// 1/12為一年12月份,所以年利息要除與12個月 int m=100000;//m為月利息十萬 while(z<m)//z<m為真時,執行while迴圈;為假時,略過迴圈 { x=x+100; } printf("您的本金須要有%d\n", z); ←感謝j大指正 printf("元月利息才有十萬"); printf(""); system("pause"); return 0; } 補充說明(Supplement): 設x為本金,y為年利率,z為月利息,p為百分比%,m為十萬。 如果z到while時沒有大於十萬時,x會加100,直到滿足條件是為止... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.124.50.163

01/20 23:17, , 1F
我注意到你最後 printf 的 z 擺錯行了
01/20 23:17, 1F

01/20 23:18, , 2F
printf("您的本金須要有%d\n", z); 改成這樣試試
01/20 23:18, 2F
※ 編輯: a828203 來自: 122.124.50.163 (01/20 23:21) 已經修改 printf("您的本金須要有%d\n", z); 的部分 輸出答案正常了!! ※ 編輯: a828203 來自: 122.124.50.163 (01/20 23:26)

01/20 23:25, , 3F
這個迴圈進去了就不會停吧0.0
01/20 23:25, 3F

01/20 23:26, , 4F
x+=100; 後應該還要有 z=x*y*p*1/12;
01/20 23:26, 4F
按a大說的, 我在回圈裡加了z=x*y*p*1/12這個運算式後, 我分別輸入18和20答案都是100001(答案變成怪怪得 ※ 編輯: a828203 來自: 122.124.50.163 (01/20 23:32)

01/20 23:37, , 5F
因為你印錯值 本金不是應該是x嗎 為什麼後面印z??
01/20 23:37, 5F
原來我這地方寫錯了

01/21 01:36, , 6F
重點在於 C 語言不像 excel 是你講一動他做一動
01/21 01:36, 6F

01/21 01:36, , 7F
你的 z= 那行寫完他就做完了
01/21 01:36, 7F

01/21 01:37, , 8F
即使 x=x+100 你的 z 值也不會變動
01/21 01:37, 8F

01/21 01:38, , 9F
另外你也要想想你要印出來的值在哪個變數裡
01/21 01:38, 9F
※ 編輯: a828203 來自: 122.124.48.115 (01/21 08:29)
文章代碼(AID): #1F6OJepn (C_and_CPP)
文章代碼(AID): #1F6OJepn (C_and_CPP)