当前位置:首页 » 编程语言 » c语言计算器提供求倒数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言计算器提供求倒数

发布时间: 2022-06-23 16:42:53

❶ 用c#编写计算器怎么实现求倒数功能

定义2个输入float float1接收第一个数字 float2接收第二个数字
然后根据点击的运算符号 假设四个符号的text为 “+” ,“-”, “*”,“/”( 这个根据你喜欢自己定义,但是给用户看到的就是加减乘除) 用一个string接收好了 str
然后定义输出为sting putOut
if (str=="+")
{putOut=convert.tosting(float1+float2)}
else if(str=="-")
{putOut=convert.tosting(float1-float2)}
else if(str=="*")
{putOut=convert.tosting(float1*float2)}
else if(str=="/")
{putOut=convert.tosting(float1/float2)}
最后把putOut显示到页面上即可

❷ 求 c语言计算器 只要 加 减 乘 除 开平方根 还有倒数(不是导数)

根号用sqrt(a+b)
这个代表根号下a+b;要加上头文件#include
<math.h>。
1/a,这个a表示的倒数,
还有什么不懂可以问偶。

❸ C语言怎么求倒数啊 我是菜鸟...

你的数据类型有问题,定义double的话输入时应该用%lf,用%f的话在存储数据时会出问题导致a中不是输入的数

❹ 新手求助,C语言,求一个数的倒数..

1/2=0;
#include<stdio.h>
void main(){
float a;
scanf("%f",&a);//%d整形,要用%f
if(a==0)
printf("error\n");
else
printf("%f\n",1.0/a);}//要用%f

❺ c语言求一个数的倒数

#include<stdio.h>
int main()
{
double a;
scanf("%lf",&a);
printf("%lf",1/a);
}

❻ c语言求倒数的函数哪里错了

先问一下,你想求的是相乘等于一的倒数,还是将排列顺序反过来的倒数

❼ c语言通过函数调用求n个自然数的倒数和

思路:函数传入参数n,接着for循环从1到n依次就倒数累加和。

参考代码:

#include"stdio.h"
doublefun(intn){
doublesum=0;
inti;
for(i=1;i<=n;i++)
sum+=1.0/i;
returnsum;
}
intmain()
{
intn;
scanf("%d",&n);
printf("%.2lf",fun(n));
return0;
}
/*
运行结果:
5
2.28
*/

❽ C语言怎么求一个数的倒数显示出来不是小数形式而是分数形式!

intn=5;doublex=3.141592654;while(n>0)//取出小数后n位{x=x*10;//更新x值,把小数点后第一位放在个位上printf("%d\n",(int)x%10);//int强制把double转换成int,因为求余必须为int类型,//而%10求余,是求个位上的数字i--;}

❾ 如何用c语言求函数导数

1、首先要有函数,设置成double类型的参数和返回值。

2、然后根据导数的定义求出导数,参数差值要达到精度极限,这是最关键的一步。

3、假如函数是double fun(doube x),那么导数的输出应该是(fun(x)-fun(x-e))/e,这里e是设置的无穷小的变量。

4、C由于精度有限,因此需要循环反复测试,并判断无穷小e等于0之前,求出上述导数的值。二级导数也是一样,所不同的是要把上述导数公式按定义再一次求导。这是算法,具体的实现自己尝试编程。

C语言的数据长度和精度都有限,因此用C语言编程求的导数并不精确,换句话说C语言编程不适合求导和极限。

(9)c语言计算器提供求倒数扩展阅读:

举例说明:

一阶导数,写一个函数 y = f(x):

float f(float x){ ...}

设 dx 初值

计算 dy

dy = f(x0) - f(x0+dx);

导数 初值

dd1=dy/dx;

Lab:;

dx = 0.5 * dx; // 减小步长

dy = f(x0) - f(x0+dx);

dd2=dy/dx; // 导数 新值

判断新旧导数值之差是否满足精度,满足则得结果,不满足则返回

if ( fabs(dd1-dd2) < 1e-06 ) { 得结果dd2...}

else { dd1=dd2;goto Lab;}。

❿ 用C语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.

#include<iostream>
#include<cmath>
#include<string>
using
namespace
std;
const
double
pi
=
3.14159265;
const
double
e
=
2.718281828459;
const
int
SIZE
=
1000;
typedef
struct
node//为了处理符号而建立的链表(如:
1+(-2))
{
char
data;
node
*next;
}node;
typedef
struct
stack_num//存储

的栈
{
double
*top;
double
*base;
}stack_num;
typedef
struct
stack_char//存储
运算符号
的栈
{
char
*top;
char
*base;
}stack_char;
stack_num
S_num;//定义
stack_char
S_char;//定义
char
fu[18]
=
{'\n',
')',
'+',
'-',
'*',
'/',
'%',
'^',
'Q',
'L',
'C',
'S',
'T',
'c',
's',
't',
'('};
int
compare[1000];//表现出各运算符号的优先级
double
shu[1000];//存储
"数"
的数组
double
dai_result;//运算的结果,是为了处理
M
运算(简介函数里有M的定义)
int
biao
=
0;//和dia_result
一样,为了处理
M
运算
char
line[SIZE];//输入的所要计算的表达式
void
init()//初始化
{
compare[fu[0]]
=
-2;//用数字的大小表现出符号的优先级
compare[fu[1]]
=
-1;
compare[fu[2]]
=
2;
compare[fu[3]]
=
2;
compare[fu[4]]
=
4;
compare[fu[5]]
=
4;
compare[fu[6]]
=
4;
compare[fu[7]]
=
5;
for(int
i
=
8;
i
<=
15;
i++)
compare[fu[i]]
=
6;
compare[fu[16]]
=
7;
S_num.base
=
(double*)malloc(sizeof(double)*SIZE);//为栈开辟空间
S_char.base
=
(char*)malloc(sizeof(char)*SIZE);//同上
S_num.top
=
S_num.base;
S_char.top
=
S_char.base;
}
void
push_num(double
n)//数字进栈
{
*
++S_num.top
=
n;
}
void
push_char(char
c)//运算符号进栈
{
*
++S_char.top
=
c;
}
double
pop_num()//数字出栈
{
double
m
=
*S_num.top;
S_num.top--;
return
m;
}
char
pop_char()//运算符号出栈
{
char
cc
=
*S_char.top;
S_char.top--;
return
cc;
}
char
get_top_char()//得到运算符号的栈中最顶端的运算符号
{
return
*S_char.top;
}
double
operate(double
y,
char
c,
double
x)//
对两个数计算
(
含是双目运算符
:

*,
/
等等
)
{
double
r;
if(c
==
'-')
r
=
x
-
y;
else
if(c
==
'+')
r
=
x
+
y;
else
if(c
==
'/'
&&
y
!=
0)
r
=
x
/
y;
else
if(c
==
'*')
r
=
x
*
y;
else
if(c
==
'^')
{
r
=
1;
for(int
i
=
1;
i
<=
y;
i++)
r
*=
x;
}
else
if(c
==
'%')
{
int
r0
=
(int)x
%
(int)y;
r
=
double(r0);
}
return
r;
}
double
operate_one(double
one,
char
cc)//
对一个数运算
(
含单目运算符
:

log(L),
sin(S)
等等
)
{
double
r;
if(cc
==
'Q')
r
=
sqrt(one);
else
if(cc
==
'C')
r
=
cos(one);
else
if(cc
==
'S')
r
=
sin(one);
else
if(cc
==
'T')
r
=
tan(one);
else
if(cc
==
'c')
i++;
}
i++;
}
if(ge
>=
3)
return
0;
else
return
1;
}
void
output(double
result)//
打出结果
{
printf("
所得结果是
:
");
cout<<result<<endl;
}
void
check()//
检查表达式是否合法
{
void
introce();
char
cc;//
决定计算器按哪种功能进行计算
double
result;//
结果
void
input();//
定义
if(
check_kuohao()
&&
check_char()
)//
看是否合法
,
合法则计算
{
result
=
compute();
output(result);
cout<<"
输入一个字符
'M'

'D'

'F',
决定是否继续
:
"<<endl;
while(cin>>cc)
{
if(cc
==
'M')
{
system("cls");
introce();
printf("
您上次所得结果为
:
");
cout<<result<<endl;
cout<<"
在上次计算结果的基础上
,
请继续输入想计算的表达式
"<<endl;
dai_result
=
result;
biao
=
1;
input();//
输入表达式
break;
}
else
if(cc
==
'D')
{
system("cls");
introce();
cout<<"
计算器已清零
,
请输入您所要计算的表达式
"<<endl;
input();//
输入表达式
break;
}
else
if(cc
==
'F')
{
system("cls");
cout<<"
计算器关闭
,
谢谢使用
!"<<endl;
break;
}
else
{
cout<<"
所输入字符无效
,
请输入一个字符
'M'

'D'

'F'!"<<endl;
continue;
}
}
}
else//
不合法,分两种不合法
{
if(check_kuohao()
==
0
&&
check_char()
==
1)
{
cout<<"
您所输入的表达式括号不匹配
,
请重新输入
:"<<endl;
input();//
输入表达式
}
else
{
cout<<"
您所输入的表达式不合法
,
请重新输入
:"<<endl;
input();//
输入表达式
}
}
}
void
tackle_fuhao()//
处理负号
{
node
*root,
*head,
*p,
*q,
*p1;
root
=
head
=
new
node;
head->next
=
NULL;
int
i;
for(i
=
0;
line[i]
!=
'\0';
i++)//
建立链表
{
p
=
new
node;
p->data
=
line[i];
p->next
=
head->next;
head->next
=
p;
head
=
p;
}
//
delete
p;
q
=
(node*)malloc(sizeof(node));
head
=
root;
if(root->next->data
==
'+'
||
root->next->data
==
'-')//
处理第一个字符
{
p
=
new
node;
p->data
=
'0';
p->next
=
head->next;
head->next
=
p;
}
if(root->next
!=
NULL)
{
for(q
=
root->next;
q;
q
=
q->next)
{
if(q->data
==
'('
&&
(q->next->data
==
'-'
||
q->next->data
==
'+'))
{
p
=
new
node;
p->data
=
'0';
p->next
=
q->next;
q->next
=
p;
}
}
}
//
delete
q;
p1
=
new
node;
int
qi
=
-1;
for(p1
=
root->next;
p1;
p1
=
p1->next)
{
line[++qi]
=
p1->data;
}
line[++qi]
=
'\0';
}
void
input()//
输入
{
cin>>line;
if(biao
==
0)
tackle_fuhao();//
处理负号
check();//
检查表达式是否合法
}
void
introce()//
对计算器的符号功能的简要介绍
{
cout<<"
计算器简要介绍
"<<endl;
cout<<"C(cos)
S(sin)
T(tan)
a(arccos)
c(arcsin)
"<<endl;
cout<<"7
8
9
/
on
t(arctan)
"<<endl;
cout<<"4
5
6
*
%
L(log)"<<endl;
cout<<"1
2
3
-
M(M+)
Q(sqrt)
"<<endl;
cout<<"0
.
+
^(
乘方
)
F(off)
Enter(=)
"<<endl;
cout<<"
对于对数输入
L2_5
表示以
2
为底
5
的对数
"<<endl;
cout<<"M(
在前面结果的基础上继续计算,
如:
上次结果为
10

现输入
+10.5*2)"<<endl;
cout<<"D(
清零并继续输入
)"<<endl;
cout<<"F(
计算机关闭
)"<<endl;
cout<<"
输入
P
就代表输入圆周率
,
输入
E
代表输入自然对数
"<<endl<<endl;
}
void
print()
{
system("color
2");
cout<<"
欢迎使用本计算器
"<<endl;
cout<<"
输入一个字符串
on,
计算器开始启动
"<<endl;
}
void
if_start()//
是否启动计算器
{
string
start;
print();
while(cin>>start)
{
if(start
!=
"on")
{
cout<<"
您所输入的字符无效
,
请按照介绍的继续输入
:"<<endl;
continue;
}
else
break;
}
if(start
==
"on")
{
system("color
5");//
颜色的处理
system("cls");//
刷屏
}
introce();//
对计算器的简要介绍
cout<<"
现在
,
请输入您所要计算的表达式
"<<endl;
input();//
输入所要计算的表达式
}
int
main()
{
if_start();//
调用是否启动计算器函数
return
0;
}
r
=
acos(one);
else
if(cc
==
's')
r
=
asin(one);
else
if(cc
==
't')
r
=
atan(one);