CCF NOI1017 价格查询

问题链接CCF NOI1017 价格查询




时间限制: 1000 ms  空间限制: 262144 KB

题目描述

  编程实现以下功能:查询水果的单价。有4种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤和10.20元/公斤。
  运行程序后,首先在屏幕上显示以下菜单(编号和选项)(见样例)。
  当用户输入编号1~4,显示相应水果的单价(保留1位小数);输入0,退出查询;输入其他编号,显示价格为0。

输入

  输入一个整数。

输出

  输出对应的结果。

样例输入

3

样例输出

[1] apples
[2] pears
[3] oranges
[4] grapes
[0] Exit
price=4.1

数据范围限制

 



问题分析

  这个问题是先输出一个菜单,然后根据输入选择,计算输出结果。

  在字符屏幕时代,计算机与用户之间多是以这种方式交互的。

程序说明

  程序中,把菜单和价格表都放进数组中。这是出于逻辑简洁和程序通用性的考虑。

要点详解
  • 编写程序需要注意逻辑的简洁,要尽量使得程序具有通用性。
  • 查表法是一种值得推荐的方法,优点多多。



100分通过的C语言程序:

#include <stdio.h>

char *menu[] = {
     "[1] apples"
    , "[2] pears"
    , "[3] oranges"
    , "[4] grapes"
    , "[0] Exit"
};
float price[] = {3.0, 2.5, 4.1, 10.2};

#define N (int)(sizeof(price) / sizeof(float))

int main(void)
{
    int choice, i;

    for(i=0; i<(int)(sizeof(menu)/sizeof(char *)); i++)
        printf("%s\n", menu[i]);

    scanf("%d", &choice);
    if(choice == 0)
        return 0;
    else if(choice > N)
        printf("price=0\n");
    else
        printf("price=%.1f\n", price[choice - 1]);

    return 0;
}




posted on 2017-04-20 17:25  海岛Blog  阅读(255)  评论(0编辑  收藏  举报

导航