| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:求助高手帮忙改进实现计算器功能的程序.
只看楼主 加入收藏
eldy
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-12-5
收藏
 问题点数:0 回复次数:0 
求助高手帮忙改进实现计算器功能的程序.

怎么样改能使这个程序有计算负数和小数(浮点数)的功能呢???

#include "stdio.h"

char get;

main()

{int result;

int f1(void),f2(void),f3(void);

printf("input suanshi:");

get=getchar(); /*从表达式开始输出字符*/

result=f1();

if(get=='\n')

printf("result:%d\n",result);

}

match(char k) /*函数检验当前字符是否与所需要的字符匹配*/

{if(get==k)get=getchar(); /*若匹配则输入下一个字符*/

}

int f3(void) /*用来计算括号及数字结合,优先级最高*/

{int s;

int f1(void);

if(get=='(')

{match('(');

s=f1();

match(')');

}

else if(get>='0'&&get<='9') /*如果是数字不是括号,则退回字符给键盘输入流*/

{ungetc(get,stdin);

scanf("%d",&s); /*读出数字*/

get=getchar();

}

return(s);

}

int f2(void) /*用来计算乘除法,优先级低于括号*/

{int u;

u=f3();

while((get=='*')||(get=='/'))

switch(get)

{case '*':match('*');

u=u*f2();

break;

case '/':match('/');

u=u/f3();

break;

}

return(u);

}

int f1(void) /*用来计算加减法,优先级最低*/

{int t=f2();

while((get=='+')||(get=='-'))

switch(get)

{case '+':match('+');

t=t+f2();

break;

case '-':match('-');

t=t-f2();

break;

}

return(t);

}

搜索更多相关主题的帖子: 计算器 Roman Times 
2005-12-21 22:44
快速回复:求助高手帮忙改进实现计算器功能的程序.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013598 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved