| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 100 人关注过本帖
标题:请问哪里出了错误,只给了90分
只看楼主 加入收藏
ManchesterU
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-8-13
  问题点数:0  回复次数:2   
请问哪里出了错误,只给了90分
1052:计算邮资

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 7985     通过数: 3936
【题目描述】
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

【输入】
输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。

【输出】
输出一行,包含一个整数,表示邮费。

【输入样例】
1200 y
【输出样例】
17
【来源】
NO

#include<iostream>
#include<math.h>
#include<cstdio>
#include<stdio.h>
using namespace std;
int main(void)
{
    int g,y,n;
    char ji;
    scanf("%d %s",&g,&ji);
    switch(ji)
    {
    case 'y':
      if(g>1000)
      {
         if(g%500!=0)
            printf("%d",8+((g-1000)/500+1)*4+5);
         else
            printf("%d",8+((g-1000)/500)*4+5);
      }
      else
            printf("%d",8+5);
      break;
    case 'n':
      if(g>1000)
      {
         if(g%500!=0)
            printf("%d",8+((g-1000)/500+1)*4);
         else
            printf("%d",8+((g-1000)/500)*4);
      }
      else
            printf("%d",8);
      break;
    }
   
    return 0;
   
}

[此贴子已经被作者于2018-8-13 15:04编辑过]

前天 14:37
尘安
Rank: 1
等 级:新手上路
帖 子:8
专家分:8
注 册:2018-8-9
  得分:0 
程序代码:

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

#define BASIC_FEE 8             //基本费 8元
#define EXPRESS_FEE 5           //加急费 5元
#define OVER_WEIGHT_CHARGES 4   //超重费 4元

int main()
{
    int weight,cost=0;     //邮件重量,总费用
    char choice;            //加急与否
    int i;                  //判断变量
    while(1)
    {
        printf("请输入邮件重量:");
        i=scanf("%d",&weight);
        fflush(stdin);
        if(i!=1)    //判断输入流是否是数字
            printf("error:the input number is invalid!\n");
        else
            break;
    }
    printf("是否加急(Y or N):");
    while(1)        //判断输入是否有误
    {
        choice=getchar();
        if(choice=='Y'||choice=='y'||choice=='N'||choice=='n')
            break;
        else
            printf("error:the character entered is invalid!\n");
    }
    switch(choice)
    {
    case 'Y':
    case 'y':
        if(weight<=1000)
            cost=BASIC_FEE+EXPRESS_FEE;
        else if(weight>1000)
            cost=BASIC_FEE+EXPRESS_FEE+((weight-1000)/500+(weight-1000)%500/((weight-1000)%500-1))*OVER_WEIGHT_CHARGES;
        break;
    case 'N':
    case 'n':
        if(weight<=1000)
            cost=BASIC_FEE;
        else if(weight>1000)
            cost=BASIC_FEE+((weight-1000)/500+(weight-1000)%500/((weight-1000)%500-1))*OVER_WEIGHT_CHARGES;
        break;
    }
    printf("总费用为:%d元",cost);
    return 0;
}

前天 15:56
ManchesterU
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-8-13
  得分:0 
回复 2楼 尘安
已解决,谢谢
前天 16:48







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

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