#define BOOS printf
#define SR scanf
#include <stdio.h>
void hanshu(int in, int ni)
{
int i;
i = (in > ni) ? in : ni;
BOOS("整形max=%d\n", i);
}
void fuhao(int o1, char o, int o2)
{
switch (o)
{
case '+':
BOOS("%d%c%d=%d", o1, o, o2, (o1 + o2));
break;
case '-':
BOOS("%d%c%d=%d", o1, o, o2, (o1 - o2));
break;
case '*':
BOOS("%ld%c%ld=%ld", (long)o1, o, (long)o2, (long)(o1 * o2));
break;
case '/':
BOOS("%lf%c%lf=%lf", (double)o1, o, (double)o1, (double)(o1 / o2));
break;
}
}
void main()
{
int x1, y1, *ip1;
char l;
BOOS("输入整形:\n");
SR("%d %d", &x1, &y1);
ip1 = &x1; /* ip1指向x1 */
BOOS("指针ip1里是%x指向x1\n", ip1);
BOOS("你输入的整形是%d\t%d\n", x1, y1);
hanshu(x1, y1);/*比较x1,y1*/
BOOS("你想让两数相(+-*/)\n输入:");
fflush(stdin);//原本有遗留的'\n',现在清空缓冲区
SR("%c", &l);
fuhao(x1, l, y1);
}
scanf会残留一个回车,得先清理缓冲区,最近有好几个鱼油出这错哦 |