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;
}
浙公网安备 33010602011771号