当前位置:首页 » 编程语言 » c语言科学计数法格式
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言科学计数法格式

发布时间: 2022-12-28 00:27:21

‘壹’ c语言 科学计数法输出问题

1、1e-10是C/C++规定的浮点数的科学计数写法,意思是1.0x10的-10次方。这个记数法有一些要求,一是e前面整数部分为1位的浮点数,如1.0、3.3、9.999978901等(但不按这个规则写,如123.4E-3编译器也认可);二时e可以大写也可以小写;三是e后面紧跟带符号的十
进制整数,长度最大为3位,正数时可不写+号。所以,1.234E-2、1.234e-02、1.234E-002等其实是一个意思。

2、C语言中数e(指数e)可以用exp( )函数表示。
函数原型:double exp(double x);
功 能:计算e^x的值
返 回 值:计算结果
举例:
double x=1.5, y;
y = exp(x); // y的值就是e^1.5
注:使用exp函数时,需要将头文件#include<math.h>添加进源文件中。

‘贰’ c语言,输出科学计数法

#include<stdio.h>
#include<string.h>

charnum[110];
charresult[110];
intlen;

intmain()
{
inti,j;
ints1,s2;//小数点位置,字符串首个非零数位置
intfind1=0;
intfind2=0;//find1:是否找到小数点位置标志位,find2:是否找到首个非零数位置,0:表示未找到
intindex;

scanf("%s",num);
len=strlen(num);//读取字符串长度

for(i=0;i<len;++i)//寻找原字符串中小数点与首个非零数的位置
{
if(find1&&find2)
break;

if(num[i]=='.'){
s1=i;
find1=1;
}
elseif(num[i]!='0'&&!find2){
find2=1;
s2=i;
}
}

if(s1-s2>0)//根据二个位置确定指数大小
index=s1-s2-1;
elseif(s2>s1)
index=s1-s2;

j=0;
for(i=s2;i<len;++i)//确定底数
{
if(num[i]=='.')
continue;
elseif(i==s2){//确定底数小数点位置

if(num[i+1]){
result[j++]=num[i];
result[j++]='.';
}
else
result[j++]=num[i];
}
else
result[j++]=num[i];
}
result[j]='';

printf("%se%d ",result,index);
return0;
}

‘叁’ C语言 科学计数法

do {
a1[i++]=getchar();
}while (a1[i]!='.');
这儿的判断不对,因为此时a1[i]还没有值。

‘肆’ 科学计数法 c语言

#include<stdio.h>
double fun(int n);
int main()
{
char a;
double x,t;
int i,n;

printf("请输入数字:\n");
scanf("%lf",&x);

getchar();
a=getchar();
scanf("%d",&n);
if(a!='e'&&a!='E')
printf("操作有误,请重试:\n");
t=x*fun(n);
printf("%.8lf\n",t);
}
double fun(int n)
{
if(n==0) return 1.0;
if(n>0) return 10.0*fun(n-1);
if(n<0) return 0.1*fun(n+1);\\这里换成+1就好了。呵呵,应该没问题了
}

‘伍’ c语言编程中%g是什么格式

%g用来输出实数,它根据数值的大小,自动选f格式(一般小数格式)或e格式(科学计数法)。选择标准为选择输出时占宽度较小的一种。且%g不输出无意义的0。
即%g是根据结果自动选择科学记数法还是一般的小数记数法。
比如如下代码:
printf("%g\n", 0.00001234);
printf("%g\n", 0.0001234);

printf("%.2g\n", 123.45);
printf("%.2g\n", 23.45);

分别会输出:
1.234e-05
0.0001234
1.2e+02
23
对于指数小于-4或者大于给定精度的数值,按照%e的控制输出,否则按照%f的控制输出.

‘陆’ C语言科学记数法

double a = 1.2e5
char buf[100]
sprintf(buf, "%e", a);/*先sprintf %e 输出到字符数组,然后再去对字符数组里的字符串做适当的调整*/
.......剩下的代码就是看你字符串 处理 功力了

‘柒’ c语言输出时%d,%c这些都分别代表什么

C语言输出时的%d和%c等都是格式化字符串的约定,%d表示整型格式, %c表示字符型格式。
常用输出格式类型:
%hd,十进制有符号短整型

%d,十进制有符号整型

%ld,十进制有符号长整型

%hu,十进制无符号短整型

%u,十进制无符号整型

%lu,十进制无符号长整型

%c,字符型

%s,字符串型

%f,十进制浮点型

%lf,十进制双精度浮点型

%e,科学计数法格式

%x,十六进制

%o,八进制

%p,十六进制形式指针

%%,输出'%'字符

‘捌’ c语言编程 科学计数法

#include<conio.h>

#include<math.h>

#include<stdlib.h>

main(){

inti,j=0,k=1;

doubleqian,wan;

inthou;

char*q,*h,*p,chao1,chao2;

printf("pleaseInput:");

scanf("%s",p);

for(i=0;*(p+i)!='';i++){

if(*(p+i)=='E'||*(p+i)=='e'){

k=2;

continue;

}

if(k==1){

*(q+i)=*(p+i);

}else{

*(h+j)=*(p+i);j++;

}

}

for(i=0,j=0;*(p+i)!='';i++){

if(*(p+i)=='.'){k=1;continue;}

if(k==1)j++;

if(j==7)chao1=*(p+i);

if(j==8){chao2=*(p+i);break;}

}

qian=atof(q);

hou=atoi(h);

wan=qian*pow(10,hou);

if(j==7)printf("resultsis%lf%c0",wan,chao1);

elseif(j==8)printf("resultsis%lf%c%c",wan,chao1,chao2);

elseprintf("resultsis%lf00",wan);

getch();

}