2014-09-09 5 views
-1
#include <stdio.h> 
#include <stdlib.h> 
#include <math.h> 
#include <string.h> 

int 
main(int argc,char **argv) 
{ 
    int array[10]; 

    int count = sizeof(array)/sizeof(int); 

    array[0] = 1; 

    int index = 1; 
    while (index < count) 
    { 
     array[index] = array[index - 1] * 2; 
     index = index + 1; 
    } 

    while (index < count) 
    { 
     printf("%d\n",array[index]); 
     index = index + 1; 
    } 
    return 0; 
} 

Я пытаюсь выполнить инструкции printf для сохранения времени ввода, поэтому каждый раз, когда я хочу распечатать новый результат, мне не придется печатать всю вещь. Когда я запускаю программу, как указано выше, ничего не распечатывается.Простая петля печати из массива

Мой вопрос: как я петлю на PRINTF заявления, так что я не должен писать

printf("%d\n", array[0]); 

и т.д. для каждой новой команды PRINTF, если моя цель состоит в том, чтобы напечатать все 10 значений массива ?

Редактировать: Для будущих зрителей переопределяйте индекс как 0 перед распечаткой инструкции.

+1

Вам не хватает '' 'перед' return' ... Пожалуйста, последовательно отпечатайте свой код, чтобы легко определить их. Предпочтительно использовать IDE или инструмент, который автоматически индексирует/автоформатирует код. – hyde

+0

Спасибо, к сожалению, он не исправил код. Продолжайте пытаться. – NewCsStudent432

+2

сбросить 'index' до 0 перед печатью. – BLUEPIXY

ответ

1

Первый контур while (index < count) заканчивается, когда index == 10.

Итак, следующий цикл while (index < count) не вводится, потому что условие изначально ложно.

опрятнее способ написать две петли является:

for (int index = 1; index < count; ++index) 
{ 
    array[index] = array[index - 1] * 2; 
} 

for (int index = 0; index < count; ++index) 
{ 
    printf("%d\n", array[index]); 
} 

По обзорного переменной счетчика в цикле, как это, вы предотвратите рода ошибок, которые вы имели в вашей программе.

-2

вы можете сделать это в одном цикле, что-то вроде ниже.

while (index < count) 
{ 
    array[index] = array[index - 1] * 2; 
    printf("%d\n",array[index]); 
    index = index + 1; 
} 
+0

Это не печатает 'array [0]'. – usr2564301

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