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; }