c語言double數組
Ⅰ c語言中可不可以定義double型的二維數組
原則上來說是可以世激信的,數組在定義時並沒有限定數組元素的數據類型
二維數組又稱為矩陣,本質上是以數組作為數組元素的數組。數組的定義舉例:floata[3][4],b[5][10];定義a為3*4(3行4列)的數組,b為5*10(5行搜輪10列鉛李)的數組。注意,不能寫成float a[3,4],b[5,10];
綜上所述,二維數組可以定義成double型
Ⅱ C語言中如何將double型數據轉換為數組
思路是:
先將Double型的數字整數部分變為整型數字一一取到數組中去(用循環整除可以做到,比如double i=123.456,就可以先把整數部分用j=(int)i強制類型轉換取出放入整型變數j中,再依次取到數組a中
(a[k++]=i%10;i/=10;)
這兩句語句就可以做到(不過數字是倒序的,最後輸出時要注意)。
再看小數部分,同理,但不用除法,而用乘法,先去除整數部分
(j=j-(int)j;)
再將小數部分不斷的乘10取整,取一位去除一位,存入另一數組:
l=(int)(j*10);
b[k++]=l;
j=j*10-l;...直到j*10==0為止
這樣就可以把j中的數按位取到了兩個數組中,接下去只要將兩數組合並到C數組中去,或者依次輸出整數部分和小數部分,中間別忘加小數點,輸出成字元在C語言里可以這樣:
printf("%c",a[i]+'0');
printf(".");
printf("%c",b[i]+'0');
以上就是我的演算法,請高手看了不要笑話,希望能給樓主帶來啟發。
Ⅲ c語言double型一維數組 初始化
double[10000] = {0.0}
這樣初始化可以啊,後面9999個就全都是0.0了
怎麼會有誤差呢?
Ⅳ c語言中,如何取出double類型數的每一位到一個數組
1、直接用數轉換到字元串的方法即可。sprintf(s,"%lf",a);s是字元數組,a是double。這樣就把a寫到s中了。
2、常式:
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
char s[12];
double a=123456789876;
sprintf(s,"%lf",a);
printf("%s",s);
return 0;
}
1、在打開的ie瀏覽器窗口右上衡譽如方點擊齒輪圖標,咐啟選擇「Internet選項」,如下圖所示:
Ⅳ c語言double類型數組輸出的問題
double佔8位元組 對應的格式為%lf
float佔4位元組 對應的格式為%f
當兩個格式用反時,會造成程序讀取數據並賦值時,賦值給變數時位元組信息錯位,導致數據錯誤。
float 存儲數據格式為:1位的符號位+8位的指數位+23位尾數
double存儲數據格式為:1位的符號位+11位的指數位+52位尾數
因此,錯位存儲的數據,解釋輸出來就差別非常大了。
Ⅵ C語言,為什麼double數組賦值給指針數組報錯
類型不匹配,指針要用地址來賦值才對。應該寫成:
*(pc+i)=c+i;
Ⅶ c語言,double類型的數組為什麼不可以用數組名對數組進行整體輸入輸出
C語言中,用printf()輸出數據時,只有字元串類型數據才可以通過數組名(數組首地址)將其中的數據完整的輸出出來。因為,字元串有一個規定,必須以\0結尾,這樣,程序,只需要判斷是不是遇到\0而決定是否結束輸蔽拿出。
可是,對於其它類型的數組,因為沒有標識可供機器判定輸出結束,所以,只提供數組首地址,機器不知道何時輸出結束,也就無法完成對數組整體進行輸出了。
關於輸入數據,對於字元串類型,雖然是輸入多個字元,只要是按了回車,系統就認為輸入結束,這一堆字元都卻只形成一個字元團並茄串,相當於只是輸入了一個數據。
但,對於其它類型數組的輸入,完整輸入則表示要輸入多個數據,因為機器無法判定數組的大小,不知道輸入塌察到哪裡算是數據輸入結束,所以,無法根據數組名進行整體輸入。