劳烦各位大佬给看看这个程序哪里出问题了?

来源:5-14 综合练习

慕粉1637207462

2017-02-15 16:48

#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回答

  • 微笑玩具屋
    2017-03-07 12:09:58

    把 int normai(...)改为float normai(...);再把所有money的输出从 %d 改为 %f ;

  • 滴血尘埃
    2017-02-16 17:26:39

    给你说几个问题,第一,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返回的是这个类型,你的都不一样,能出结果也是奇迹

    奥古斯都_刚...

    int和float应该没关系八 不是函数值的类型和函数的类型不一致应该以函数返回类型为准吗?

    2017-03-01 21:54:23

    共 1 条回复 >

  • 滴血尘埃
    2017-02-16 16:06:07

    int normal(int time1,int time2,int n)  这个int是整数吧

    慕粉1637...

    你是指哪个?main函数一般也是int类型,但里面的元素是可以设置为float的啊

    2017-02-16 16:11:33

    共 1 条回复 >

  • 南衙府军
    2017-02-16 09:24:25

    函数的返回值类型是int,所以money的值总是整的。还有函数参数列表只留一个时间参数,主函数调用两次函数,代码就能简洁不少。

    慕粉1637... 回复南衙府军

    那如何让他返回的是float类型的?

    2017-02-17 11:13:48

    共 3 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926212 学习 · 20797 问题

查看课程

相似问题