| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1092 人关注过本帖
标题:初學者再請教一段c語言代碼
只看楼主 加入收藏
chanckaka
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-3-2
收藏
 问题点数:0 回复次数:10 
初學者再請教一段c語言代碼
/*
題目:輸入里程,並計算出車費。假設里程在 1500 公尺以下皆為 70 元,
      每超過 500 公尺加 5元,不足 500 公尺以 500 公尺計算。
 輸入值:0 ~ 5000 公尺之間任意值
 輸出值:價格
*/
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int taxi_dist, price;
   
    printf("To compute the price, please enter the distance -> ");
    scanf("%d",&taxi_dist);
    if (taxi_dist>=0 && taxi_dist<=5000) /*如果在要求範圍內,則計算價格。*/
    {
        if (taxi_dist >= 1500)
        {
           price = 70 + 5*(taxi_dist-1500)/500;
           if ((taxi_dist-1500)%500 != 0) /* 判斷是否有不滿500公尺的距離。 */
              price += 5;
        }
        else
           price = 70;
        printf("價格是%d元\n",price);
    }
    else
       printf("請輸入0-5000的距離範圍!!!\n");   
   
    system("pause");
    return 0;
}


以上代碼,當輸入超過5000的數字,就會結束程序
請問如何修改至輸入超過5000的的數字時,提示再輸入?
搜索更多相关主题的帖子: 500 里程 distance include please 
2010-03-03 22:30
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
这时你就可以写个判断的代码 来判断输入的数字超过5000时的操作 在 printf("To compute the price, please enter the distance -> ");下面 写上
printf("输入的值不的超过5000否则错误:");

Discuz!  
好好学习  天天向上
2010-03-03 22:39
chanckaka
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-3-2
收藏
得分:0 
我想大大誤會了哦,我的意思是,當輸入超過5000的數字時,會繼續彈出"To compute the price, please enter the distance -> "
即是如果一直輸入超過5000的數字,則一直彈出這句

2010-03-03 22:46
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
哦这样啊  那这就简单了  写个判断 if (taxi_dist>5000) break;

Discuz!  
好好学习  天天向上
2010-03-03 23:14
chanckaka
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-3-2
收藏
得分:0 
請問加在哪呢?   
2010-03-04 00:12
chanckaka
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2010-3-2
收藏
得分:0 
還有break不是終止之類的東西嗎?      
2010-03-04 00:27
无诲今生
Rank: 8Rank: 8
来 自:桂林理工大学
等 级:蝙蝠侠
威 望:2
帖 子:373
专家分:726
注 册:2009-5-11
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int taxi_dist, price;
   beign:
    printf("To compute the price, please enter the distance -> ");
    scanf("%d",&taxi_dist);
    if (taxi_dist>=0 && taxi_dist<=5000) /*如果在要求範圍內,則計算價格。*/
    {
        if (taxi_dist >= 1500)
        {
           price = 70 + 5*(taxi_dist-1500)/500;
           if ((taxi_dist-1500)%500 != 0) /* 判斷是否有不滿500公尺的距離。 */
              price += 5;
        }
        else
           price = 70;
        printf("價格是%d元\n",price);
    }
    else
       {
          system("cls");//清屏
          printf("請輸入0-5000的距離範圍!!!\n");  
          goto beign;
        }  
   
    system("pause");
    return 0;
}

顺境逆境切莫止境,得意失意切莫在意。
2010-03-04 09:41
浅墨
Rank: 2
等 级:论坛游民
帖 子:18
专家分:53
注 册:2010-2-6
收藏
得分:0 
楼上正解 不过goto需慎用
可以加while来限制输入

while (taxi_dist < 0 || taxi_dist > 5000)
    {   
        printf("out of range.\n");
        printf("input distance:");
        scanf("%s", &taxi_dist);
    }

替换掉if...else
2010-03-04 11:32
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
这样也行  go  to 最好不要用

Discuz!  
好好学习  天天向上
2010-03-04 11:45
heishu100
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2010-1-28
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
main()
{int s,p,w;
printf("please enter the distance from 0 to 5000");
scanf("%d",&s);
if(s>1500){w=(s-1500)/500;
          if((s-1500)%500==0)
              p=70+5*w;
              else {w++;p=70+5*w}
           }

else p=70;
printf("%d\n",p);

}
这样应该是对的!
2010-03-04 15:19
快速回复:初學者再請教一段c語言代碼
数据加载中...
 
   



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

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