2016-07-15 3 views
-2

Так что я пытаюсь сделать это как счетчик с двумя наборами цифр, моя логика кажется правильной, она будет увеличиваться до девяти, тогда счетчик «перевернет» следующую цифру и так далее и т. Д. , Когда я запускаю его, хотя я просто получаю страницы с нулями, мне было интересно, может ли кто-нибудь помочь или указать мне в правильном направлении.C loop, counter

char ft_putchar(char c) 
{ 
    write(1, &c, 1); 
    return 0; 
} 

void ft_print_comb2(void) 
{ 
    char num1a = '0'; 
    char num1b = '0'; 
    char num2a = '0'; 
    char num2b = '0'; 

    while (num1a != '9' && num2a != '9') 
    ft_putchar(num1a); 
    ft_putchar(num1b); 
    ft_putchar(','); 
    ft_putchar(' '); 
    ft_putchar(num2a); 
    ft_putchar(num2b); 

    num2b++; 
    if (num2b == '9') 
    { 
     num2b ='0'; 
     num2a++; 
    } 
    if (num2a == '9') 
    { 
     num2a ='0'; 
     num1b++; 
    } 
    if (num1b == '9') 
    { 
     num1b='0'; 
     num1a++; 
    } 
} 
+3

Этот вопрос был вызван проблемой, которая уже не может быть воспроизведена или ** простая типографская ошибка **. –

+2

Отладка позволила бы вам найти вашу ошибку, и это навык, который вам понадобится, если вы продолжите программирование. Вот хороший справочник по началу работы: https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –

ответ

3

Вы while имеет единый корпус линии, которая ft_putchar(num1a); из-за недостающих фигурных скобках {..}
Try это как так

void ft_print_comb2(void) 
{ 
    char num1a = '0'; 
    char num1b = '0'; 
    char num2a = '0'; 
    char num2b = '0'; 

    while (num1a != '9' && num2a != '9') 
    { 
     ft_putchar(num1a); 
     ft_putchar(num1b); 
     ft_putchar(','); 
     ft_putchar(' '); 
     ft_putchar(num2a); 
     ft_putchar(num2b); 

     num2b++; 

     if (num2b == '9') 
     { 
      num2b ='0'; 
      num2a++; 
     } 

     if (num2a == '9') 
     { 
      num2a ='0'; 
      num1b++; 
     } 
     if (num1b == '9') 
     { 
      num1b='0'; 
      num1a++; 
     } 
    } 
} 
+0

Большое вам спасибо, я прошу прощения, что это такой простой синтаксис, я думал, что что-то было испорчено в том, как я думал о проблеме. –

+0

Ваша логика ошибочна, а приведенный выше код не приводит к возрастающей последовательности цифр. Он будет переходить от «8» до «10», «от 88» до «100» и т. Д. –

+0

Я не исправил всю логику, поскольку я не понял смысла всего, но просто указал на вопросника правильное направление с отсутствующими брекетами - что он подтвердил, было в порядке. Его последнее предложение «Когда я запускаю его, хотя я просто получаю страницы с нулями, мне было интересно, может ли кто-нибудь помочь или указать мне в правильном направлении». -> этот вопрос исправлен, и это был весь его вопрос. – DAXaholic