鱼C论坛

 找回密码
 立即注册
查看: 2808|回复: 5

求助ing

[复制链接]
发表于 2013-8-24 17:51:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

未命名.jpg 这道题目我这么解的,但是调试的过程中发现一个问题,见下图
#include<stdio.h>
#include<ctype.h>
const double PRISE1=1.25;
const double PRISE2=0.65;
const double PRISE3=0.89;
const int AMOUNT1=5;
const int AMOUNT2=20;
const double TRANSPORT1=3.5;
const double TRANSPORT2=10.00;
const double TRANSPORT3=8;
const int BREAK=100;
int main()
{
        char ch;
        double A,B,C;//朝鲜蓟,甜菜,胡萝卜的磅数
        double cost1,cost2,cost3;//朝鲜蓟,甜菜,胡萝卜的费用
        double amount,trans,cut,cost,final;//总磅数,运费,折扣,花费,折扣后费用
        double average,sum;//平均费用,运费后费用
        printf("Enter a,b or c to choose,(# to stop)\n");
        while((ch=getchar())!='#'){
                if (ch == '\n')
          continue;
      while (getchar() != '\n')//这段为什么有那个作用?
          continue;
       ch = tolower(ch);
                switch(ch){
                        case'a':printf("Enter the amount of 朝鲜蓟:");
                               scanf("%lf",&A);
                               break;
                        case'b':printf("Enter the amount of 甜菜:");
                                scanf("%lf",&B);
                                        break;
                        case'c':printf("Enter the amount of 胡萝卜:");
                                scanf("%lf",&C);
                                        break;
                        default:printf("%c is not a valid choice.\n",ch);                                          
                }
                printf("Enter a,b or c to choose,(# to stop)");
        }
        amount=A+B+C;
        if(amount<AMOUNT1)
        trans=TRANSPORT1;
        else if(amount<AMOUNT2)
        trans=TRANSPORT2;
        else
        trans=TRANSPORT3+amount*0.1;
        cost1=A*PRISE1;
        cost2=B*PRISE2;
        cost3=C*PRISE3;
        cost=cost1+cost2+cost3;
        if(cost>=BREAK)
        cut=cost*0.05;
        else
        cut=0;
        final=cost-cut;
        average=final/amount;
        sum=final+trans;
        printf("您订购的总磅数为:%.2f,每磅费用为:%.2f.\n",amount,average);
        printf("订单总费用:%.2f,折扣:%.2f.朝鲜蓟共:%.2f磅,$%.2f;甜菜共:%.2f磅,$.2f;胡萝卜共%.2f磅,$%.2f\
        ",final,A,cost1,B,cost2,C,cost3,cut);
        printf("\n");
        printf("运输费$%.2f,总计费用为$%.2f",trans,sum);
        return 0;
}
未命名1.jpg 当三个值不全输入的时候,就这样了- -。求指教,给改的和谐下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-24 19:06:18 | 显示全部楼层
变量初始化为0试试。。。
没看完
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-24 19:28:41 | 显示全部楼层
我想说你净做这些 本身没有难度结果能把一个人活活绕死的题目有意思吗??
个人建议没事表做这种了那些语法会用就可以了这个无非就是来训练你的语法的
都会了你纠结这个干吗
还是去做点算法题目吧 比如欧拉 粉笔 ACM的
这种题目做得再多 说实话对你的编程能力真的没什么大的用处
只要你会了语法 有这个耐心 肯定写得出来的
和书上的例子就是这个比例子繁
纯属个人观点~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-24 20:04:34 | 显示全部楼层
本帖最后由 clb929 于 2013-8-24 20:06 编辑

非常同意,就像当初我看谭元强的C语言一样,课后练习都是很无语的,实际编程根本不会去写那种很容易产生歧义的语法(也要尽量避免写这种容易产生歧义的语法,如果你不是做系统级的开发,根本不用去斤斤计较那点所谓的效率),工作中你这样写,被老大骂死,谁都看不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-24 20:05:23 | 显示全部楼层
很多教材过于偏理论研究了,该学习的学习,不该学习的就抛弃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-30 17:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表