C语言指数高精(c语言指数怎么表达)

http://www.itjxue.com  2023-02-16 09:07  来源:未知  点击次数: 

C语言编程高精度计算问题~~~~~求助高手~~~~~~~~~

#include stdio.h

main() {

long sum = 0; // 和

int cnt = 2; // 计数器

long f = cnt; // 阶乘

while (cnt = 16) {

f *= cnt;

cnt ++;

if (cnt % 2 == 0) {

sum += f;

}

}

printf("sum = %ld", sum);

}

注:本程序没有使用递归,因此是最高效的。又:楼上的程序有语法错误。

C语言高精度问题

#includestdio.h

int main(void)

{

char s[100];

scanf("%s",s);//读入给定数字

int i,j;

for(i=0;s[i];i++)

{

if(s[i] == '.') //如果碰到小数点,则记录该位置,后面输出5位即可

{j = i;break};

else //否则输出该位数字

printf("%c",s[i]);

}

for(++i;i-j=5;i++)

printf("%c",s[i]);

puts("");

return 0;

}

c语言 指数函数怎么表达?谢谢

在开始加上#include math.h;

程序中就可以调用pow(x,y)。

main()

{

double z;

z=pow(10,5);

printf("%lf/n",z);

}

输出结果:

285.000000

扩展资料

c语言求自然对数的底e的指数,可以使用函数exp().

exp()的头文件:#include

exp()的函数原型:double exp(double x);

exp()函数的作用:返回e的x次方。

exp()的相关函数:float expf(float x);

long double expl(long double x);

注:自然对数的底e叫做: 欧拉数(eula's number)

C语言中如何使用高精度算法??

C里的取值范围:你自己看够么?

short -32768~32767

unsigned short 16 0~65535

int -32768~32767

unsigned int 16 0~65535

long -2147483648~2147483647

unsigned long 32 0~4294967295

我真不知道你要那么多位的数字做什么?

C里我也没见过那么精确的!

最大似乎可以到32位的运算!

c语言高精度计算

不是我写的,,帮你找到的。。

#includestdio.h?

#include?conio.h

#include?string.h?

#include?"stdlib.h"

void?main()

{?

?int?n=0,i=0,j=0,k=0,b=0;

?char?a[3][500]={0};

?int?n1=0,n2=0;

?char?s[500]={0};

?int?n3=0;

?int?c=0,c1=0;

?int?temp=0;

?char?op;

?char?str[1001]={0};?

?char?*result;

?scanf("%d",n);

?result=(char?*)malloc(501*n);//根据输入的n申请内存空间

?*result='\0';

?/*每次循环都要初始化*/

?for(;in;i++)

?{

??//gets(str);

??for(j=0;j500;j++)

??{

???a[0][j]='\0';a[1][j]='\0';a[2][j]='\0';

???s[j]='\0';

???str[j]='\0';

???str[1000-j]='\0';

??}

??c=0;c1=0;

??k=0;

??n1=0;n2=0;n3=0;

??/*分离输入的字符串*/

??scanf("%s",str);

??for(?j=0;str[j];j++?)

??{

???if(?str[j]!='+'??str[j]!='-')

????a[k][j-n1]=str[j];

???else?

???{

????op=str[j];

????k=1;

????n1=strlen(a[0])+1;

???}

??}//for?j

??n1-=2;

??n2=strlen(a[1])-1;

??n3=n1n2?n1:n2;

??/*计算加法*/

??if(op=='+')

??{

???for(;n1=0n2=0;n1--,n2--,n3--)

???{

????temp=a[0][n1]+a[1][n2]-96;

????temp+=c;

????if(temp=10)

????{

?????s[n3]=temp%10+48;

?????c=1;

????}

????else

????{

?????s[n3]=temp+48;

?????c=0;

????}

???}//for

???while(n1=0)

???{

????temp=a[0][n1]-48;

????temp+=c;

????if(temp==10)

????{

?????s[n3]=48;

?????c=1;

????}

????else

????{

?????s[n3]=temp+48;

?????c=0;

????}

????n1--;

????n3--;

???}//while?n1

???while(n2=0)

???{

????temp=a[1][n2]-48;

????temp+=c;

????if(temp==10)

????{

?????s[n3]=48;

?????c=1;

????}

????else

????{

?????s[n3]=temp+48;

?????c=0;

????}

????n2--;

????n3--;

???}//while?n2

???if(c)

????strcat(result,"1");

???strcat(result,s);

???strcat(result,"\n");

??}//if?op

??/*计算减法*/

??else

??{?/*保证减数大于被减数

????*如果被减数大于减数,则交换2数,并设置变量

????*/

???if(strcmp(a[0],a[1])0)

???{

????//a[2]=a[0];a[0]=a[1];a[1]=a[2];

????for(b=0;b3;b++)

????{

?????j=(b+2)%3;

?????for(k=0;k=n2;k++)

??????a[j][k]=a[b][k];

????}

????n2=n1;n1=n3;

????c1=1;//正为0,负为1

???}

???/*计算减法*/

???for(;n2=0;n1--,n2--,n3--)

???{

????temp=a[0][n1]-a[1][n2];

????temp-=c;

????if(temp=0)

????{

?????s[n3]=temp+48;

?????c=0;

????}

????else

????{

?????s[n3]=temp+58;

?????c=1;

????}

???}//for

???while(n1=0)

???{

????temp=a[0][n1]-48;

????temp-=c;

????if(temp=0)

????{

?????s[n3]=temp+48;

?????c=0;

????}

????else

????{

?????s[n3]=temp+58;

?????c=1;

????}

????n1--;

????n3--;

???}

???if(c1)

????strcat(result,"-");

???/*消除减法结果高位的0*/

???j=0;

???while(s[j]==48)

????j++;

???strcat(result,s+j);

???strcat(result,"\n");

??}//else?op

?}//for?i

?printf("%s",result);

?getch()();

}

(责任编辑:IT教学网)

更多