回 帖 发 新 帖 刷新版面

主题:花费问题

某市对电话费作了调整,原市话费为每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,请各位帮忙看一下哪里出错了?谢谢了!!

回复列表 (共3个回复)

沙发


类型,应该是float,输出整型了

板凳

#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?为什么,麻烦各位再看看!

3 楼

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    float time;//通话时间
    float money1 = 0;//原始通话费用
    float money2 = 0;//调整通话费用
    int i;

    printf("请输入通话时间: ");
    scanf("%f", &time);

    while(time <= 0.0)
    {
        printf("输入有误!\n");
        printf("请重新输入: ");
        scanf("%f", &time);
    }
    if(time <= 3.0)
    {
        printf("原市花费为: %.2f元\n", money1 = 0.2f);
        printf("现市花费为: %.2f元\n", money2 = 0.2f);
    }
    else
    {
        printf("原市花费为: %.2f元\n", ceil(time / 3.0) * 0.2f);
        printf("现市花费为: %.2f元\n", ceil(time - 3.0) * 0.1f + 0.2f);
    }

    system("pause");
    return 0;
}
就像楼主所说,编得有点乱,所以我也就没看,变量名还要想,这个变量代表什么意思.
所以根据自己的理解,编了一个程序,供楼主参考.
里面的ceil函数是一个数学函数,头文件为#include <math.h>
它的作用是什么,我看举个例子好懂一些.
比如3.1,它的值为4,
5.6,它的值为6
-3.1,它的值为-3
好了,该总结了:它的作用是返回大于或者等于指定表达式的最小整数
楼主明白不?当然也可以不用这个函数,也可以编出来,既然有,何必不用?

我来回复

您尚未登录,请登录后再回复。点此登录或注册