|
发表于 2014-9-18 21:06:04
|
显示全部楼层
- #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会残留一个回车,得先清理缓冲区,最近有好几个鱼油出这错哦 |
|