| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1301 人关注过本帖
标题:我的计算器
只看楼主 加入收藏
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
 问题点数:0 回复次数:23 
我的计算器


#include<stdio.h>
#include<math.h>

float newx()
{
float x;
printf("请输入x的值:");
scanf("%f",&x);
return x;
}
float newy()
{
float y;
printf("请输入y的值:");
scanf("%f",&y);
return y;
}
float add(float m,float n)
{
return (m+n);
}
float sub(float m,float n)
{
return n-m;}
float mul(float m,float n)
{
return m*n;}
float div(float m,float n)
{
if(n==0)printf("ERROR!\n");
return n/m;}

float Sin(float n)
{return sin(n);}
float Cos(float n)
{return cos(n);}
float Tan(float n)
{
return tan(n);}
float Exp(float n)
{
return exp(n);}
float Fabs(float n)
{
return fabs(n);}
float Log( float n)
{
return log(n);}
float Log10(float n)
{
return log10(n);
}
float Pow(float m,float n)
{
return pow(m,n);
}
float Sqrt(float n)
{
if(n<0)printf("ERROR!\n");
return sqrt(n);
}
void main()
{int sel;

printf("请选择计算方式:\n");
printf("1:\'+\' 2:\'-\' 3:\'*\' 4:\'/\' 5:\'sin\' 6:\'cos\' 7\'tan\'\n");
printf("8:\'exp\' 9:\'fabs\' 10:\'LogE\' 11:\'Log10\ 12:\'pow\' 13:\'Sqrt\'\n");
scanf("%d",&sel);
do
{
switch(sel)
{ case 0:break;
case 1:
printf("%.1f\n",add(newy(),newx()));break;
case 2:
printf("%.1f\n",sub(newy(),newx()));break;
case 3:
printf("%.1f\n",mul(newy(),newx()));break;
case 4:
printf("%.1f\n",div(newy(),newx()));break;
case 5:
printf("%.1f\n",Sin(newx()));break;
case 6:
printf("%.1f\n",Cos(newx()));break;
case 7:
printf("%.1f\n",Tan(newx()));break;
case 8:
printf("%.1f\n",Exp(newx()));break;
case 9:
printf("%.1f\n",Fabs(newx()));break;
case 10:
printf("%.1f\n",Log(newx()));break;
case 11:
printf("%.1f\n",Log10(newx()));break;
case 12:
printf("%.1f\n",Pow(newx(),newy()));break;
case 13:
printf("%.1f\n",Sqrt(newx()));break;

}
scanf("%d",&sel);
}while(sel!=0);

}

搜索更多相关主题的帖子: 计算器 
2006-08-05 17:34
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 

有看到有人求计算器的代码!这个是我写的!希望大家指点一下!


2006-08-05 17:34
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 
其中有处错误噢!仔细看下!

2006-08-05 17:47
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 

#include<stdio.h>
#include<math.h>

float newx()
{
float x;
printf("请输入x的值:");
scanf("%f",&x);
return x;
}
float newy()
{
float y;
printf("请输入y的值:");
scanf("%f",&y);
return y;
}
float add(float m,float n)
{
return (m+n);
}
float sub(float m,float n)
{
return n-m;}
float mul(float m,float n)
{
return m*n;}
float div(float m,float n)
{
if(n==0)printf("ERROR!\n");
return n/m;}

float Sin(float n)
{return sin(n);}
float Cos(float n)
{return cos(n);}
float Tan(float n)
{
return tan(n);}
float Exp(float n)
{
return exp(n);}
float Fabs(float n)
{
return fabs(n);}
float Log( float n)
{
return log(n);}
float Log10(float n)
{
return log10(n);
}
float Pow(float m,float n)
{
return pow(n,m);
}
float Sqrt(float n)
{
if(n<0)printf("ERROR!\n");
return sqrt(n);
}
void main()
{int sel;

printf("请选择计算方式:\n");
printf("1:\'+\' 2:\'-\' 3:\'*\' 4:\'/\' 5:\'sin\' 6:\'cos\' 7\'tan\'\n");
printf("8:\'exp\' 9:\'fabs\' 10:\'LogE\' 11:\'Log10\ 12:\'pow\' 13:\'Sqrt\'\n");
scanf("%d",&sel);
do
{
switch(sel)
{ case 0:break;
case 1:
printf("%.1f\n",add(newy(),newx()));break;
case 2:
printf("%.1f\n",sub(newy(),newx()));break;
case 3:
printf("%.1f\n",mul(newy(),newx()));break;
case 4:
printf("%.1f\n",div(newy(),newx()));break;
case 5:
printf("%.1f\n",Sin(newx()));break;
case 6:
printf("%.1f\n",Cos(newx()));break;
case 7:
printf("%.1f\n",Tan(newx()));break;
case 8:
printf("%.1f\n",Exp(newx()));break;
case 9:
printf("%.1f\n",Fabs(newx()));break;
case 10:
printf("%.1f\n",Log(newx()));break;
case 11:
printf("%.1f\n",Log10(newx()));break;
case 12:
printf("%.1f\n",Pow(newy(),newx()));break;
case 13:
printf("%.1f\n",Sqrt(newx()));break;

}
scanf("%d",&sel);
}while(sel!=0);

}


2006-08-05 17:47
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 

1. return log10(n); --〉 math.h中有这函数吗?我记得是log(n)吧;做对数运算时请判断一下真数是否大于0(即n>0),否则作出来的结果就是“复数”。

2. 我觉得main()函数中第一个scanf()可以放到do..while()中去,放在switch()语句上面,把第二个scanf()删掉。

3. 楼主应该不是女生吧!


我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2006-08-05 17:54
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 

谢谢啊!!


2006-08-05 18:19
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 

[QUOTE]math.h中有这函数吗?[/QUOTE]
double log10(double x) 计算x的常用对数

math.h 里的确有.不过他和log的具体区别.我也没太弄明白


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-05 18:28
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
double log10(double x)是求以10为底的对数,而double log(double x)是求以e为底的对数即ln(x).

倚天照海花无数,流水高山心自知。
2006-08-05 19:37
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 
恩,是这样的!

2006-08-05 20:54
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
调用数学函数

倚天照海花无数,流水高山心自知。
2006-08-05 20:57
快速回复:我的计算器
数据加载中...
 
   



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

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