//注:我是在VC6.0帮你做的
#include
#include
#include
//把函数都提到前面来定义了
void printline() /*函数用于在计算器模块中输出一列线*/
{
printf("_ _ _ _ _ _ _ _ _ _ _ _\n");
}
void picture() /*计算器模块函数*/
{
printline();
printf(" 1 2 3 * \n");
printf(" 4 5 6 / \n");
printf(" 7 8 9 %% \n");
printf(" 0 +/- = . ");
printline();
}
float check_(float x,float y)
{
(char)x;
(char)y;
if (!isdigit(x)&&!isdigit(y)){ printf("出错,请输入数字!");return 0 ;}
return 1 ;
}
void main()
{
float num1,num2,val;
char sym;
char answ;
picture(); /*调用计算器模块函数*/
do
{ //do-while要加括号
printf("请输入数字用于计算");
scanf(" %f %f",&num1,&num2);
check_(num1,num2); /*调用函数检查用户输入值是否为数字*/
printf("请根据此计算器选择您所需要的计算方式(例:+)");
scanf("%c",&sym);
switch(sym)
{
case'+':val=num1+num2;break;
case'-':val=num1-num2;break;
case'*':val=num1*num2;break;
case'/':if(num2=0) printf("除数不得为零"); else val=num1/num2;break;
case'%%':if(num2=0)printf("除数不得为零"); else val= fmod(num1,num2);break;
}
printf("最后计算结果为%f",val);
printf("是否继续进行运算?(是/否)");
scanf("%c",&answ);
}
while( answ=='是'); //这里就是错误的原因
}
楼主小气呀,这个工作量可不小
1>------ 已启动生成: 项目: ex_0909, 配置: Debug Win32 ------
1>正在编译...
1>baidu.c
1>.\baidu.c(24) : error C2061: 语法错误 : 标识符“scanf”
1>.\baidu.c(38) : warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
1>.\baidu.c(48) : error C2061: 语法错误 : 标识符“answ”
1>.\baidu.c(72) : warning C4244: “函数”: 从“float”转换到“int”,可能丢失数据
1>.\baidu.c(72) : warning C4244: “函数”: 从“float”转换到“int”,可能丢失数据
1>生成日志保存在“file://d:\c语言_ex\ex_0909\ex_0909\Debug\BuildLog.htm”
1>ex_0909 - 2 个错误,3 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
这是在vs2008中的错误提示 程序写的太花哨
你是在turbo c中吗?
scanf那里改好多 上边都要改 换个思路重写吧