2015-06-02 4 views

ответ

0

int c[] - целое число. Вы можете попробовать.

float c[] = { 2.8, 3.4, 4, 6.7, 5 }; 
float *p = c; 
for (int j = 0; j<5; j++){ 
    printf(" %f ", *p); 
    p = p+1; 
} 
2

он выполняется именно они, как вы думаете, что это выполняется: печатать элементы массива в вашем for цикле, однако, вы сделали элементы массива, как int, поэтому при печати 2.8, который дважды, компилятор игнорирует любой другой после точки, значит, он видит это как 2, а не 2,8

2

Когда вы пишете заявление:

int c[ ]={2.8,3.4,4,6.7,5}; 

десятичные значения автоматически преобразуются в integers.So тыс е массивные магазины

2,3,4,6,5 

Таким образом, ваш выход становится таким, какой он есть. Для работы с десятичными знаками используйте переменные типа float.

float c[ ]={2.8,3.4,4,6.7,5}; 
0

, если вы используете «поплавок J» вместо «Int J» и «% F» вместо «% D» вы получите то, что вы хотите. Здесь из-за использования int j и% d печатается только часть до десятичной точки каждого числа в массиве.

Смежные вопросы