勞煩各位大佬給看看這個程序哪里出問題了?
#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的值總是不正常。
2017-03-07
把 int normai(...)改為float normai(...);再把所有money的輸出從 %d 改為 %f ;
2017-02-16
給你說幾個問題,第一,moeny是float,printf("money=%d,%d\n",money1,money2);不用%d用%f
第二int normal(int time1,int time2,int n)應(yīng)該是folat?normal(int time1,int time2,int n),這前面是它的類型,return返回的是這個類型,你的都不一樣,能出結(jié)果也是奇跡
2017-02-16
int normal(int time1,int time2,int n) ?這個int是整數(shù)吧
2017-02-16
函數(shù)的返回值類型是int,所以money的值總是整的。還有函數(shù)參數(shù)列表只留一個時間參數(shù),主函數(shù)調(diào)用兩次函數(shù),代碼就能簡潔不少。