亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

勞煩各位大佬給看看這個程序哪里出問題了?

#include<stdio.h>

int normal(int time1,int time2,int n)

{

float money=0,money1=0,money2=0;

if(n<=3)

money=13;

else money=(n-3)*2.3+13;

printf("money=%d\n",money);

if(time1>=5&&time1<=23)

money1=money+1;

else money1=1.2*money+1;

if(time2>=5&&time2<=23)

money2=money+1;

else money2=1.2*money+1;

printf("money=%d,%d\n",money1,money2);

money=money1+money2;

return money;

}

main()

{

int time1,time2,n;

time1=9;

time2=18;

n=12;

printf("money is %f", normal(time1,time2,n));

}

money的值總是不正常。

正在回答

4 回答

把 int normai(...)改為float normai(...);再把所有money的輸出從 %d 改為 %f ;

0 回復 有任何疑惑可以回復我~

給你說幾個問題,第一,moeny是float,printf("money=%d,%d\n",money1,money2);不用%d用%f

第二int normal(int time1,int time2,int n)應該是folat?normal(int time1,int time2,int n),這前面是它的類型,return返回的是這個類型,你的都不一樣,能出結果也是奇跡

0 回復 有任何疑惑可以回復我~
#1

奧古斯都_剛鐸

int和float應該沒關系八 不是函數值的類型和函數的類型不一致應該以函數返回類型為準嗎?
2017-03-01 回復 有任何疑惑可以回復我~

int normal(int time1,int time2,int n) ?這個int是整數吧

0 回復 有任何疑惑可以回復我~
#1

慕粉1637207462 提問者

你是指哪個?main函數一般也是int類型,但里面的元素是可以設置為float的啊
2017-02-16 回復 有任何疑惑可以回復我~

函數的返回值類型是int,所以money的值總是整的。還有函數參數列表只留一個時間參數,主函數調用兩次函數,代碼就能簡潔不少。

0 回復 有任何疑惑可以回復我~
#1

慕粉1637207462 提問者

但在該函數內部我把money設為float不可以嗎?
2017-02-16 回復 有任何疑惑可以回復我~
#2

南衙府軍 回復 慕粉1637207462 提問者

不行,這個int規定這個函數返回值類型只能是int,得到的結果不是int也要強制轉化成int
2017-02-16 回復 有任何疑惑可以回復我~
#3

慕粉1637207462 提問者 回復 南衙府軍

那如何讓他返回的是float類型的?
2017-02-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

勞煩各位大佬給看看這個程序哪里出問題了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號