2016-07-15 7 views
-2

私はこれを2桁の数字のカウンターのようにしようとしています。論理は正しいようですが、それは9桁までインクリメントされ、カウンターは次の桁を "反転"します。 。私はそれを実行すると、私はちょうどゼロのページを取得する、私は誰かが助けることができるか、正しい方向に私を指すことができますかと思っていた。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);である単一行の体を持っている
この質問は、もはやすることはできません問題によって引き起こされたので

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

私は全体の点を全く理解しなかったので、全体のロジックを修正しませんでしたが、質問者に彼が確認した欠けている括弧が正しい方向はOKだった。彼の最後の文章「私がゼロのページを取得したにもかかわらず、それを実行すると、誰かが助けて正しい方向に向けることができるかどうか疑問に思っていました。 - >その問題は修正されており、それは彼のすべての質問でした。 – DAXaholic