永发信息网

C语言 求教,打印错误,求大神修改解释一下

答案:2  悬赏:30  手机版
解决时间 2021-01-11 02:08
  • 提问者网友:焚苦与心
  • 2021-01-10 05:35
C语言 求教,打印错误,求大神修改解释一下
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-01-10 05:47
输入错了,应该是
scanf("%lf",&money)
双精度数double 不是用d,而是用lf追问改了 输出结果还是错误 怎么回事 能帮忙看一下吗追答这个要看是什么错误了,比如说,题目到底是要干什么,你可以给出正确的从输入输出例子来追问我修改了很多次,但对不上例子,你帮忙看一下,我补充了问题,谢谢追答还是把题目发一下吧,你不给让人怎么猜啊追问题目补充上去了,帮忙看一下 谢谢追答还是把题目发一下吧,你不给让人怎么猜啊
#include
void change(double money,int *q,int *d,int *n,int *p);
int main(){
 double money;
 while(scanf("%lf",&money) !=EOF){ 
  int q,d,n,p;
  change(money,&q,&d,&n,&p);
  printf("The number of quarters is %d
",q);
   printf("The number of dimes is %d
",d);
   printf("The number of nickels is %d
",n);
   printf("The number of pennies is %d
",p); 
  }
}
void change(double money,int *q,int *d,int *n,int *p){
 *q = money / 0.25;
 *d = (money - *q*0.25 + money/1e8) / 0.1;  
 //  略微修正一下浮点数数据精度可能带来的误差
 *n = (money - *q*0.25 - *d*0.1  + money/1e8) / 0.05;
 *p = (money - *q*0.25 - *d*0.1 - *n*0.05  + money/1e8) / 0.01;
}美元找零问题啊
追问谢谢啊
全部回答
  • 1楼网友:旧脸谱
  • 2021-01-10 06:37

你把scanf里的%d改为%lf;因为你的money是double型的,所以scanf里用%lf输入;
追问修改了很多次了 但对不上例子,我补充了问题,能帮忙看一下吗,谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯