2016-07-15 83 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