2013-06-10 4 views
2

У меня есть этот массив, и я не могу понять, как сформировать оператор for looping, чтобы отображать эти значения в списке.Зацикливание в C

float array1[] = {30 , 0.81 , 0.16 , 30 , 2813 , 58 , 8.4 , 0.61}; 

Я попытался выяснить это, но он просто продолжал быть ошибка синтаксиса

for (array1; array1 <= 8; array1++) 
    printf("%f\n", array1); 

какие-либо предложения ??

ответ

1

array1 - это имя массива, а не переменная, которую вы хотите увеличить!

int i = 0; 
for (i = 0; i < 8; i++) printf("%f\n", array1[i]); 
+1

'array1' ** есть ** переменная, это просто не изменяемое именующее. –

+0

Я сказал, что это переменная ... просто нет смысла увеличивать ее (по крайней мере на этом уровне) –

+0

Это забавный термин 'const variable' ... (' array1' не может быть изменен, '* (array1 + n) 'может быть.) – anishsane

2

Оно должно быть:

for(int i = 0; i < sizeof(array1)/sizeof(float); i++) 
    printf("%f\n", array1[i]); 
+0

' int i = 0' в цикле for не будет работать в C –

+3

@pivovarit Вы опоздали на 14 лет, C99 был выпущен в 1999 году. –

+1

printf ("% f \ n ", array1 [i]); – Paritosh

0

Вам нужен индекс в массиве:

int i; 
for (i = 0; i < SIZE; ++i) { // SIZE should be 8. 
    printf("%f\n", array1[i]); 
} 

Думай вашего массива в виде непрерывного участка памяти, которая содержит Размер блоков данных. Индекс i используется для доступа к значению, хранящемуся в каждом блоке.

0
int i = 0; 
for (i; i <= 8; i++) 
    printf("%f\n", array1[i]); 
0
int length = sizeof(array1)/sizeof(float); 
for(int i = 0; i< length; i++) 
{ 
printf("%f\n", array1[i]); 
} 
+1

'sizeof (array1)/sizeof (array1)' == 1 – Devolus

+1

Я думаю, что лучше использовать/sizeof (array1)/sizeof (array1 [0]) вместо слова 'float'. , – anishsane

0

попробуйте следующий код,

float *ind; 
for (ind=array1; ind < array1+8; ind++){ 
    printf("%f\n", *ind) 
} 
Смежные вопросы