鱼C论坛

 找回密码
 立即注册
查看: 2759|回复: 7

我不知道这个程序有什么问题???????????

[复制链接]
发表于 2012-3-1 20:55:36 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>
void main()
{
         double p,w,s,f;
         printf("请依此输入基本运费,物重,路程:");
         scanf("%lf%lf%lf",&p,&w,&s);
         if(s<250)
         {
                 f=p*w*s;
         }
         else
         {
                 if(s=250 && 250<s<500)
                 {
                         f=p*w*s*(1-0.02);
                 }
                 else
                 {
                         if(s=500 && 500<s<1000)
                         {
                                 f=p*w*s*(1-0.05);
                         }
                         else
                         {
                                 if(s=1000 && 1000<s<2000)
                                 {
                                         f=p*w*s*(1-0.08);
                                 }
                                 else
                                 {
                                         if(s=2000 && 2000<s<3000)
                                         {
                                                 f=p*w*s*(1-0.1);
                                         }
                                         else
                                         {
                                                 if(s=3000 && s>3000)
                                                 {
                                                         f=p*w*s*(1-0.15);
                                                 }
                                         }
                                 }
                         }
                 }
         }
         printf("%lf\n",&f);
}

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-1 20:55:37 | 显示全部楼层
#include <stdio.h>

void main()
{
        double p, w, s, f=0;
        printf("基本运费: ");
        scanf("%lf", &p);  //你要人输入你得写输入函数啊...
        
        printf("物重: ");
        scanf("%lf", &w);
        
        printf("路程: ");
        scanf("%lf", &s);
        
        if(s < 250)                        //if else不用钱啊,省着点花,或者用?:这个判断
        {
                f = p * w * s;
        }
        else if(s >= 250 && s < 500)//大于等于不是那么写的(大于等于<=,小于等于>=,等于==)
        {
                f = p * w * s *(1-0.02);
        }
        else if(s >= 500 && s < 1000)
        {
                f = p * w * s * (1-0.05);
        }
        else if(s >= 1000 && s < 2000)
        {
                f = p * w * s * (1-0.08);
        }
        else if(s >= 2000 && s < 3000)
        {
                f = p * w * s * (1-0.1);
        }
        else if(s >= 3000)
        {
                f = p * w * s *(1-0.15);
        }
        printf("总额为: %lf\n", f);                //这里不要用&取址符
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-3 00:05:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-6 21:11:20 | 显示全部楼层

#include <stdio.h>
void main()
{
         double p,w,s,f;
         printf("请依此输入基本运费,物重,路程:");
         scanf("%lf%lf%lf",&p,&w,&s);
         if(s < 250)
         {
                 f=p*w*s;
         }
         else
         {
                 if(s >= 250 && s <= 500)
                 {
                         f=p*w*s*(1-0.02);
                 }
                 else
                 {
                         if(s >= 500 && s <= 1000)
                         {
                                 f=p*w*s*(1-0.05);
                         }
                         else
                         {
                                 if(s >=1000 && s <= 2000)
                                 {
                                         f=p*w*s*(1-0.08);
                                 }
                                 else
                                 {
                                         if(s >=2000 && s <= 3000)
                                         {
                                                 f=p*w*s*(1-0.1);
                                         }
                                         else
                                         {
                                                 if(s >= 3000)
                                                 {
                                                         f=p*w*s*(1-0.15);
                                                 }
                                         }
                                 }
                         }
                 }
         }
         printf("%lf\n",f);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-6 21:13:00 | 显示全部楼层
要遵守c语言的方式而不是直接数学计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-7 10:44:45 | 显示全部楼层
(s=250 && 250<s<500)这里错了,应该是(s>=250&&s<500)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-18 10:21:40 | 显示全部楼层
#include <stdio.h>
int main()
{
        double p,w,s,f;//定义变量
    int t;
    printf("请以此输入基本运费,物重,路程\n");
    scanf("%lf,%lf,%lf",&p,&w,&s);
        //判断s是否大于3000,若大于则令t=12否则t=s/250
        if (s>=3000)
    t=12;
    else
    t=s/250;
    //用switch语句判断不同路程所需的运费
    switch (t)
    {
                case 0:printf("f=%f\n",f=p*w*s);break;
        case 1:printf("f=%f\n",f=p*w*s*(1-0.02));break;
        case 2:
        case 3:printf("f=%f\n",f=p*w*s*(1-0.05));break;
        case 4:
        case 5:
        case 6:
        case 7:printf("%f\n",f=p*w*s*(1-0.08));break;
        case 8:
        case 9:
        case 10:
        case 11:printf("f=%f\n",f=p*w*s*(1-0.1));break;
        case 12:printf("f=%f\n",f=p*w*s*(1-0.15));break;
        default:printf("输入错误\n");
         }
        return 0;
}
这是用switch编的 凑合着看吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-8 23:23:28 | 显示全部楼层
很不错呀,多谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 22:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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