标题:花费问题
只看楼主
x不会飞
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-11-22
结帖率:42.86%
已结贴  问题点数:20 回复次数:3 
花费问题
某市对电话费作了调整,原市话费为每3分钟0.2元(不足3分钟按3分钟计算),调整后,前3分钟为0.2元,
以后每分钟加收0.1元(不足一分钟按一分钟计算)。设通话时间是x分钟时,调整前的话费为y1元,调整后的话费为y2元。
#include<stdio.h>
void main()
{                                                                     
 float t,n,m;                                         t指的是所用时间,n指的是调整前的花费,m指的是调整后的花费。
 int j,k,s,w;                                          
 printf("please input one number:");
 scanf("%d",&t);
   w=(int)t;
   s=(w%3);
   j=(int)(w/3);
  if (0<s&&s<3)
    {
     k=j+1;
     n=k*0.2;
    }
  else n=0.2*j;
  if(t<=3)
    m=3;
  else
   if(t>w)
    m=0.2+(w-3+1)*0.1;
   else
    m=0.2+(t-3)*0.1;
    printf("n=%d,m=%d",n,m);
}
编的有点乱~~哈哈!
我编完后不论输入什么数据最后都是n=0,m=0,请各位帮忙看一下哪里出错了?谢谢了!!
搜索更多相关主题的帖子: include 通话时间 please 电话费 
2010-11-30 11:02
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
得分:15 
问题出在类型上,你m,n声明为float,可是最后printf("n=%d,m=%d",n,m);却是整型,应改为%f

我是初学者
2010-11-30 15:02
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
得分:5 
似乎是咦

粗心是大敌
2010-11-30 16:40
x不会飞
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-11-22
得分:0 
#include<stdio.h>
void main()
{
 float t,n,m,z;
 int j,k,s,w,y;
 printf("please input one number:");
 scanf("%f",&t);
   z=t/3;
   y=(int)z;
   w=(int)t;
   s=w%3;
   j=(int)(w/3);
   if(z<y+1/3)
    n=(y+1)*0.2;
   else
    if (0<s&&s<3)
     {
      k=j+1;
      n=k*0.2;
     }
    else n=0.2*j;
     if(t<=3)
     m=3;
     else                              
      if(t>w)                                             
       m=0.2+(w-3+1)*0.1;   
      else
       m=0.2+(t-3)*0.1;
       printf("n=%f,m=%f",n,m);
}
嗯嗯,是的,但我改了改好像还是有些问题,就是当t-3n<1时,例如t=9.1,应该n=8,但结果还是6?为什么,麻烦各位再看看!
来源: http://www.
2010-11-30 20:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327376-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053740 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved