发新话题
打印

适合新手的练习

适合新手的练习

if-else的语句嵌套练习。<br />
  题目如下:编写一个程序,要求顾客输入一个金额,如果这个金额大于100元小于500元的,打折2%,如果金额大于500,小于1000的,打折5%,如果大于1000,打折<br />
10%,小于100的不打折。<br />
<br />
   我的程式是这样的。<br />
#include <stdio.h>
main()
{
  float pay,sum,sum0,sum1,sum2;

   scanf("%f",&pay);
    sum0=pay;
    sum=pay*0.98;
    sum1=pay*0.95;
    sum2=pay*0.9;
   if(pay>100&&pay<500)
   printf("After discount ,You pay %f",sum);
   {
    if(pay>500&&pay<1000)
   printf("After discount ,You pay %f",sum1);
    if(pay>1000)
   printf("After discount ,You pay %f",sum2);
    else
   printf("No discount, You pay %f",sum0);
  }

}
应该还有更好,更优化的程式。大家试试,我这个程式打出来的时候,有一些问题。大家可以试试。一起讨论下吧

[ 本帖最后由 Rson 于 2008-5-18 15:28 编辑 ]
做更多有意义的事
看不出来那里适合初学者了。而其有误导之意,附上我的程序,供参考!


#include <stdio.h>

int main(void)
{
        float pay;
        printf("Scanf your pay:");
        scanf("%f",&pay);
         
        if (pay>=100 && pay<500)
        {
                printf("After discount ,Your pay is %f\n",pay*0.98);
        }
        else if (pay>=500 && pay<1000)
        {
                        printf("After discount ,Your pay is%f\n",pay*0.95);
        }
        else if (pay>=1000)
        {
                        printf("After discount ,Your pay is%f\n",pay*0.90);
        }
        else
        {
                        printf("No discount, Your pay is%f\n",pay);
        }
        return 0;
}
可以说说哪里误导了吗
做更多有意义的事
是新手,没看明白 。。。
格式太乱了  给新手看的程序那么乱   第一会教给新手坏的变成习惯  第二 会让人看不明白
觉得LZ的程序写程序效率不是特别的好。程序一开始就计算了四种结果,然后执行相关的判断。实际只有一个表达式是需要计算的。如果1楼和2楼的程序各执行10万次 应该就能看出效率上的差距。并且LZ的题目没有描述500 100 1000 的处理方式啊。我也只能写出2楼的那样的程序了。
认真做好每一件事情。相信自己,相信朋友! PS:近期学校调整网络可能不能常来论坛聊了,大家加油啊!
同意2、5、6楼的评论。对于初学者,一定要注意培养良好的编程习惯,不过只有犯过错误,才能深刻理解。所以,斑竹的发帖也是很有意义的,大家讨论讨论,就能给初学者一些建议,当然我也只能算是一个初学者,看了梁肇新老师的《编程高手箴言》,结合自己的编程习惯,以及程序可读性、时间空间复杂度方面的疏忽弊端,才有小感。斑竹的程序确实存在一些问题,或许还是很多。2楼的程序已然不错,或说很好,而且可读性极高,在if-else执行字句尽管单句,还加大括号,使可读性增强,良好的编程习惯。但是,在实际中,或许还该考虑,依据概率,if判断条件表达式排放顺序,当然题目条件不足,不必考虑。不同意见,敬请指教。
对于初学,错误是好老师。
错误是个好老师,说的很好!很赞同
VC++里面用printf和cout有什么区别?
发新话题