當前位置:首頁 » 編程語言 » c語言表示科學計數法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言表示科學計數法

發布時間: 2023-07-03 09:39:34

c語言中的科學計數法。。一道題

_下劃線可以當成普通字母一樣使用,可放成任意位置,_a跟a_一樣,是變數名;
e是科計數法,如23e5,表示23*10^5,1e-1表示1*10^-1=0.1;
浮點數省略表示法:.5代表0.5,1.代表1.0
所以上面的表達式是錯誤的。如果改成
_a=-1.e-1就對了,此時_a=-0.1

㈡ C語言十六進制浮點數科學計數法

你的數應該這樣寫的 0xa.1f 10p
a是10
.1f表示1/16加上15/256
p10表示2的10次方(即1024)
即 0xa.1f 10p =10+ 1*(16的-1次方)+ 15*(16的-2次方) ×(2的10次方)
類似於十進制數1.23=1+2*10的-1次方+3*10的-2次方

㈢ c語言編程輸入一個整數,輸出它的十六進制、八進制、十進制、科學計數法

//C語言:
#include<stdio.h>
intmain(void)
{
inta;
scanf("%d",&a);
printf("8進制:%o 10進制:%d 16進制:%x 科學記數法:%e",a,a,a,a);
return0;
}
//C++:
#include<iostream>
usingnamespacestd;
intmain()
{
inta;
cin>>a;
cout<<endl;
cout<<"8進制:"<<oct<<a<<endl;
cout<<"10進制:"<<dec<<a<<endl;
cout<<"16進制:"<<hex<<a<<endl;
return0;
}

㈣ c語言的編程中實型常量中的科學計數法不懂,求賜教,變成數學是什麼

給你舉幾個例子:
920000 對應的 科學計數法為 9.2E+5

E+5代表的是10的5次方(+號也可以省略)
0.092 對應的 科學計數法為 9.2E-2(-號不能省略)
E-2代表的是10的-2次方
這樣你能理解嗎?

㈤ c語言程序設計,科學計數法的問題

1)float接受十進制數字作為賦值時精度只有6位有效數字,即:
float f = 0.339062543;
std::cout<<f<<std::endl;
則輸出是0.339063

2)double接受十進制數字作為賦值時精度有15位有效數字,如果想在輸出時改變輸出精度,可以有很多辦法,例如使用setprecision():
double d = 0.339062543787323;
std::cout<<std::setprecision(15)<<d<<std::endl;
setprecision()在<iomanip>

㈥ 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();

}

㈦ C語言里要對輸出的結果用科學計數法表示保留三位有效數字應該怎麼寫啊

sorry.由於沒有在計算機旁,沒有及時看到你的求助,你問:C語言里要對輸出的結果用科學計數法表示保留三位有效數字應該怎麼寫?
我覺得應該是
printf("%.3e",變數名);
而不是
printf("%3e",變數名);
==================
MSDN 中有關printf列印格式串:
%[flags] [width] [.precision] [{h | l | I64 | L}]type
的描述,其中對[.precision]是這么說的:
The third optional field of the format specification is the precision specification.
(大義:格式規約中第三個選項世廳段是關於小數的規則。)
==================
對於列印e, E類型的數據時,[.precision]選項的作用是:
The precision specifies the number of digits to be printed after the decimal point. The last printed digit is rounded.
(大義:該精度指定了列印小數點蔽神後的位數,之後的位數會被四捨五入)
Default precision is 6; if precision is 0 or the period (.) appears without a number following it, no decimal point is printed.
(大義:預設情況下,該精度為6,如果精度值為0或者小數點後沒有緊跟著數字,則不會列印小數搜並隱部分)
==================
例:
#include <stdio.h>
int main()
{
float b = 100000.55555f;
printf("%3e\n",b);
printf("%.3e\n",b);
return 0;
}
輸出結果為:
1.000006e+005
1.000e+005

㈧ 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;
}