#include <stdio.h>
#include <dos.h>
main()
{
float num1,num2,result;
char operator;
char answer=’Y';
int right;
printf(“**********************欢迎进入四则运算系统************************\n”);
do
{
printf(“请输入num1,operator,num2\n”);
scanf(“%f%c%f”,&num1,&operator,&num2);
printf(“请输入你的答案\n”);
scanf(“%f”,&result);
switch(operator)
{
case ‘+’:if(result==(num1+num2)) right=1;
else right=0;
break;
case ‘-’:if(result==(num1-num2)) right=1;
else right=0;
break;
case ‘*’:if(result==(num1*num2)) right=1;
else right=0;
break;
case ‘/’:if(num2==0) {printf(“输入有误”);right=0;break;}
else
{
if(result==(num1/num2)) right=1;
else right=0;
break;
}
default:printf(“输入有误\n”);
}
if(right)
printf(“答案正确\n”);
else
printf(“答案错误\n”);
printf(“是否退出系统?(Y or N)\n”); /*提示用户是否继续运算*/
scanf(“%c”,&answer);
}
while((answer==’Y')||(answer==’y'));
system(“pause”);
}
这个程序在最后的是不会执行do-while的的循环,而是直接结束程序
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能
在scanf(“%c”,&answer);前加上一句getchar()
为什么要加上
getchar() 呢????
用来接收“回车”字符
例如
你输入 1+2之后肯定要敲“回车”才能运行
getchar()就是用来接收这个回车
#include <stdio.h>
#include <dos.h>
main()
{
float num1,num2,result;
char operator;
char answer;
int right;
printf(“**********************welcome************************\n”);
do
{
printf(“please input num1,operator,num2\n”);
scanf(“%f%c%f”,&num1,&operator,&num2);
printf(“your answer is \n”);
scanf(“%f”,&result);
switch(operator)
{
case ‘+’:if(result==(num1+num2)) right=1;
else right=0;
break;
case ‘-’:if(result==(num1-num2)) right=1;
else right=0;
break;
case ‘*’:if(result==(num1*num2)) right=1;
else right=0;
break;
case ‘/’:if(num2==0) {printf(“scanf error”);right=0;break;}
else
{
if(result==(num1/num2)) right=1;
else right=0;
break;
}
default:printf(“scanf error\n”);
}
if(right)
printf(“right ans\n”);
else
printf(“wrong ans\n”);
printf(“dou you want to exit ?(Y or N)\n”);
getchar();
scanf(“%c”,&answer);
}
while((answer==’N')||(answer==’n'));
}