一个简单计算器c代码

baiweihu 2009-10-08 09:13:08
大家帮我看看这个代码,有很多问题,不知道怎么改,小弟在此谢谢了。
#include<stdio.h>
#include<conio.h>
#include<ctype.h>

float date1,date2;
char op;

void main()
{
void ZhuJieMian(); //对ZhuJieMian函数进行声明
float SiZeYunSuan(float x,float y); //对SiZeYunSuan函数进行声明
float al;
char ch='Y';
while(toupper(ch)=='Y')
{
clrscr(); //刷屏起始位置
ZhuJieMian(); //调用ZhuJieMian函数
al=SiZeYunSuan(date1,date2); //调用SiZeYunSuan函数
gotoxy(16,8);
clreol(); //刷屏终止位置
printf("%.2f%2c %.2f=%.2f\n",date1,op,date2,al);
gotoxy(50,8);
putchar(0xb3);
gotoxy(15,4);
printf("continue(y/n)?");
ch=getch();
}
}




void ZhuJieMian()
{
int i;
gotoxy(15,5);
putchar(0XDA); //画左上拐角|-
gotoxy(16,8);
putchar(' '); //光标插入部位
gotoxy(16,5);
for(i=16;i<=49;i++)
putchar(0XC4); //画上边线 —
gotoxy(15,6);
for(i=6;i<=9;i++)
{gotoxy(15,i);
putchar(0XB3);
} //画左侧间隔竖线|
gotoxy(15,9);
putchar(0XC3); //画左侧T形线
for(i=10;i<=20;i++)
{
gotoxy(15,i);
putchar(0XB3);
} //画左下段竖线|
gotoxy(50,5);
putchar(0XBF); //画右上拐角-|
gotoxy(50,6);
for(i=6;i<=9;i++)
{
gotoxy(50,i);
putchar(0XB3);
} //画右侧间隔竖线|
gotoxy(50,9);
putchar(0XB4); //画右侧T形线
gotoxy(50,10);
for(i=10;i<=20;i++)
{gotoxy(50,i);
putchar(0XB3);} //画右侧下段竖线|
gotoxy(50,21);
putchar(0XD9); //画右下拐角_|
gotoxy(15,21);
putchar(0xC0); //画左下拐角|_
gotoxy(16,9);
for(i=16;i<=49;i++)
{gotoxy(i,9);
putchar(0XC4);} //画间隔横线
gotoxy(i,21);
for(i=16;i<=49;i++)
{
gotoxy(i,21);
putchar(0xC4);
} //画底部横线-

//===========================================================================//数字面板


gotoxy(21,12);
putchar(0X31); //1
gotoxy(21,15);
putchar(0X34); //4
gotoxy(21,18);
putchar(0X37); //7
gotoxy(21,20);
putchar(0X30); //0
gotoxy(27,12);
putchar(0X32); //2
gotoxy(27,15);
putchar(0X35); //5
gotoxy(27,18);
putchar(0X38); //8
gotoxy(33,12);
putchar(0X33); //3
gotoxy(33,15);
putchar(0X36); //6
gotoxy(33,18);
putchar(0X39); //9
gotoxy(38,12);
putchar(0X2B); //+
gotoxy(38,15);
putchar(0x2A); //*
gotoxy(38,18);
putchar(0x3D); //=
gotoxy(44,12);
putchar(0X2D); //-
gotoxy(44,15);
putchar(0X2F); ///
gotoxy(44,18);
putchar(0X1B); //←
gotoxy(16,8); //定义光标位置
scanf("%f%c%f",&date1,&op,&date2);
}





float SiZeYunSuan(float x,float y)
{

float re;
scanf("%f%c%f",&x,&op,&y);
switch(op)
{
case '*':
//re=date1*date2;
return(re=date1*date2);
break;
case '/':
//re=date1/date2;
return(re=date1/date2);
break;
case '+':
//re=date1+date2;
return(re=date1+date2);
break;
case '-':
//re=date1-date2;
return(re=date1-date2);
break;

}
}
...全文
486 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
illuminati 2009-10-08
  • 打赏
  • 举报
回复
al=SiZeYunSuan(date1,date2); //调用SiZeYunSuan函数
调用SiZeYunSuan函数在函数中无法改变main函数date1,date2的值
应该传入date1,date2的地址
illuminati 2009-10-08
  • 打赏
  • 举报
回复
在TC中把这些注释都去了就能编译成功了
baiweihu 2009-10-08
  • 打赏
  • 举报
回复
是tc的,就是一下函数连接不上,一下多分支选择语句又出问题。。。。
大虾们帮忙看一下吧
Z782282738 2009-10-08
  • 打赏
  • 举报
回复
书上有例子,不比你的短。

我不喜欢看太长的东西。
aifei521 2009-10-08
  • 打赏
  • 举报
回复
clrscr()、gotoxy()、clreol()这些貌似是TC上的东西,VC++6.0和VS2008里面都没有。
aifei521 2009-10-08
  • 打赏
  • 举报
回复
void ZhuJieMian(); //对ZhuJieMian函数进行声明
float SiZeYunSuan(float x,float y); //对SiZeYunSuan函数进行声明
放在
main()
{}函数前去,函数不能嵌套定义!
Dansley 2009-10-08
  • 打赏
  • 举报
回复
帮顶

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧