2016-07-15 49 views
-2

所以我試圖讓這個像一個有兩組數字的計數器,我的邏輯似乎是正確的,它會增加到九,然後計數器將「翻轉」下一個數字,等等等等。當我運行它時,雖然我只是得到零頁,但我想知道是否有人能夠幫助或指向正確的方向。C循環,計數器

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

我沒有修復整個邏輯,因爲我根本沒有得到整個事情的重點,只是指出提問者正確的方向與失蹤的大括號 - 他確認是好的。他的最後一句:「當我運行它時,雖然我只是得到零頁,但我想知道是否有人能夠幫助或指引我走向正確的方向。」 - >這個問題是固定的,這是他的所有問題。 – DAXaholic