我試圖用7個元素打印float數組的值。我只分配了3個值,它們屬於float,double和integer。解釋與printf相關的c程序的結果值
代碼:
#include <stdio.h>
int main(){
float array [7];
float f = 3.24;
double d = 23.5;
int i = 4;
array[0] = f;
array[1] = i;
array[2] = d;
int n = sizeof(array)/sizeof(float);
printf("Number of Elements : %d \n\n\n",n);
for(int j = 0; j < n ; j++){
printf("%.2f ,",array[j]);
}
printf("\b ");
}
我得到的輸出如下所示: 數目的元素:7
3.24,4.00,23.50,-1#R,96627196995476105000000000000000.00,96629547147269436000000000000000.00,0.00
我想清楚我的代碼是否正確?以及爲什麼最後四個值彼此不同。這些價值是什麼?
您還沒有分配您的陣列爲任意值。這就是爲什麼在任何分配之前它都是填充**垃圾**值的原因。 – kuro
也許'float array [7] = {0};'會爲您提供更多可預測的結果,並防止發生**未定義行爲**,當您嘗試訪問陣列中未初始化的元素**時, [3]'。如果初始化數組的所有元素,則可以遍歷整個數組而不調用未定義的行爲,如果未能初始化數組,則必須將迭代次數限制爲僅數組中的前三個已定義元素。 –
注:本聲明:float f = 3.24;將一個'double'文字賦值給一個'float'變量。爲了糾正產生'float'文字,文字的最後一個字符必須是'f' I.E. 'float f = 3.24f;' – user3629249