s级超美丽素人:有没有c语言高手帮个忙??

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 15:50:33
怎样编这样一个程序:输入1-4的数字,代表加减乘除,选择后输入任意数字,进行运算,重要的是按1-4外的数字要显示错误,按回车不选继续循环,计算后退出,求求大家了!!!!

循环输入处理
基本就是这个意思了, 比较友好, 不过还有一些小地方, 处理起来有点儿麻烦, 我没抠的太细。 比如选择运算符号的时候, 如果你输入3456, 程序会按照输入3处理, 这个要改进的话, 你只好读入整个字符串再进行判断了。 估计这道题的题目要求也没那么麻烦, 毕竟不是给别人做产品。 其他方面, 这个程序基本都可以处理的比较好了。

#include<stdio.h>

int main(){
char ch;
double a, b;
for(;;){
printf("请选择并按回车: 1加法 2减法 3乘法 4除法 #退出\n");
ch = getchar();
if(ch=='#') break;
printf("请输入两个操作数:\n");
scanf("%lf%lf", &a, &b);
switch (ch){
case '1': printf("%g\n", a+b); break;
case '2': printf("%g\n", a-b); break;
case '3': printf("%g\n", a*b); break;
case '4': printf("%g\n", a/b); break;
default: printf("非法输入,请重新输入\n");
}
while(getchar()!='\n') continue;
putchar('\n');
}
}

//我这只是示例,手头暂时没有编译器,没经过调试运行
//我又修改了一下,这样一位以上的数视为非法输入,也不用刷新输入缓存了
//也可以做一个循环,输入无效重新输入
#include <stdio.h>
int main()
{
char c;
int a,b;//你没说数据类型,以整型做例子
while((c=getchar())=='\n');//按回车不选继续等待输入
if(getchar()!='\n'||c<'1'||c>'4'){printf("invalid input");exit(0);}//输入无效,做退出处理
scanf("%d %d",&a,&b);
switch(c)
{
case '1':printf("%d",a+b);break;
case '2':printf("%d",a-b);break;
case '3':printf("%d",a*b);break;
case '4':printf("%d",a/b);break;//此处是整除
}
return 0;//返回DOS表示程序正常退出
}