#include <stdio.h>
#include <stdlib.h>
//处理字符串用头文件
main()
{
float money[5]={3.0, 2.5, 2.5, 3.5, 4.0};
//饮料价格数组
char *drinks[5]={"可口可乐","雪碧","芬达","百事可乐","非常可乐"};
//饮料名称数组
float sum=0.0;
//计算总金额用
int n;
char input;
//键盘输入
while(1)
//1为循环条件永远成立
{
printf
("---------自动饮料机--------\n");
printf("
1 可口可乐\n");
printf("
2 雪碧\n");
printf("
3 芬达\n");
printf("
4 百事可乐\n");
printf("
5 非常可乐\n");
printf("
6 退出\n");
printf("
---------------------------\n");
printf("
请输入1~5数字选择你要的饮料\n");
input=getch();
//用getch()排除了输入字符串和两位数以上数字的可能
if( (input>'0')&&(input<='6') )
//仅接受1~6的数字输入
{
n=input-48;
//通过ASCII码运算将字符串格式转换为整型
if(n<=5&&n>0)
//选择1~5的数字
{
printf("
\n\n你当前选择的是%s,售价为%0.1lf元\n",*(drinks+n-1),money[n-1]);
sum=sum+money[n-1];
printf("
目前总共应付%0.1lf元\n\n\n",sum);
//%0.1lf为仅显示小数点后一位
}
else //退出
{
printf("谢谢惠顾!\n");
printf("欢迎再次光顾\n");
break;
//结束循环
}
}
else //输入规定的数字以外的提示
{
printf("\n输入有误,请重新输入\n\n");
continue;
//继续循环
}
}
}
在wnder112的程序的基础上改过来的,对输入的异常做了进一步处理,貌似更符合LZ的要求
另外添加了注释,方便理解,当然如果只是为了交作业的话请无视
[bo][un]风居住的街道[/un] 在 2008-11-14 19:08 的发言:[/bo]
- -好像没人看我贴的资料……
看了又如何,想说明什么问题
与本帖的内容并没有太大的联系
[[it] 本帖最后由 Estudy 于 2008-11-15 14:53 编辑 [/it]]