非计算机系大二学生,为完成c程序设计的课程设计作业
写好了一个简单的计算器程序,可以四则运算,如何使用键盘上的“=”输出结果呢?
就是类似于运行时输入“6x8”,按下回车键可以输出“6×8=48”,如何实现输入“6x8=”的瞬间换行输出结果呢?
你题目的解答代码如下:
#include <stdio.h>
#include <conio.h>
int main()
{
char ch;
char s[100];
int i=0;
float a,b;
char op;
while((ch=getch()) != '=')
{
printf("%c", ch);
s[i++] = ch;
}
s[i] = '\0';
printf("%c", ch);
sscanf(s,"%f%1s%f", &a,&op,&b);
switch (op)
{
case '+':
printf("%g\n",a+b);
break;
case '-':
printf("%g\n",a-b);
break;
case '*':
printf("%g\n",a*b);
break;
case '/':
if (b==0)
printf("\nDivision by zero!\n");
else
printf("%g\n",a/b);
break;
default:
printf("\nUnknown operator!\n");
break;
}
return 0;
}
如有帮助,望采纳!谢谢!
输入时用getch检测输入的字符,否则只有回车时才会处理。大概这样子:
#include <stdio.h>
#include <conio.h>
int main()
{
char ch;
char c[3];
int i=0;
while((ch = getch()) != '=')
{
putch(ch);
c[i++] = ch;
}
putch(ch);
if(i==3)
{
printf("%d",(c[0]-'0')*(c[2]-'0'));
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int add(int num1, int num2)
{
return num1 + num2;
}
int sub(int num1, int num2)
{
return num1 - num2;
}
int mul(int num1, int num2)
{
return num1*num2;
}
int div(int num1, int num2)
{
return num1 / num2;
}
enum OP //不给赋值的之后,枚举自动从0开始加
{
EXIT, //0
Add, //1
Sub, //2
Mul, //3
Div, //4
Exit //5
};
void Menu()//菜单列表
{
printf(" ***1 ADD *** \n");
printf(" ***2 Sub *** \n");
printf(" ***3 Mul *** \n");
printf(" ***4 Div *** \n");
printf(" ***0 exit*** \n");
}
int main()
{
int num1 = 0;
int num2 = 0;
int input = 1;
while (input)
{
Menu();
printf("请选择");
scanf("%d", &input);
switch (input)
{
case Add:
{
printf("请给两个操作数:");
scanf("%d%d", &num1, &num2);
printf("%d\n", add(num1, num2));
break;
}
case Sub:
{
printf("请给两个操作数:");
scanf("%d%d", &num1, &num2);
printf("%d\n", sub(num1, num2));
break;
}
case Mul:
{
printf("请给两个操作数:");
scanf("%d%d", &num1, &num2);
printf("%d\n", mul(num1, num2));
break;
}
case Div:
{
printf("请给两个操作数:");
scanf("%d%d", &num1, &num2);
printf("%d\n", div(num1, num2));
break;
}
case Exit:
break;
default:
printf("选择不规范\n");
}
}
system("pause");
return 0;
}