柜台的C程序?

时间:2014-03-01 17:37:30

标签: c counter

#include <stdio.h>
#include <stdlib.h>
int task1_counter = 0;
int task2_counter = 0;
int task3_counter = 0;


void checkTasks()
{

    if(++task1_counter ==2 )
    {
        task1_counter = 0;
        printf("etas1\n");
    }
    else if(++task2_counter == 10)
    {
        task2_counter = 0;
        printf("etas2\n");

    }
    else if(++task3_counter == 100)
    {
        task3_counter = 0;
        printf("etas3\n");
    }
    else
        printf("error\n");
}


int main()
{

    checkTasks();
    return 1;

}

我创建了一个计数器,它必须打印counter = 2,10和100的语句,但上面的代码将直接打印错误。上面的代码有什么问题 有人可以指导我吗?

3 个答案:

答案 0 :(得分:3)

您已将所有变量设置为0,然后在if语句中只将它们递增1。因此,他们都将等于一个。

答案 1 :(得分:0)

int x,y;
y=++x; //x is incremented by 1, y is assigned to the new value of x

int task1_counter = 0;
int task2_counter = 0;
int task3_counter = 0;

由于所有内容均为0++task1_counter++task2_counter++task3_counter将为1。所以控制将转到else部分。

答案 2 :(得分:0)

你从

开始
int task1_counter = 0;
int task2_counter = 0;
int task3_counter = 0;

然后你运行测试:

if(++task1_counter ==2 )        // increases task1_counter from 0 to 1 then evaluates to false.
else if(++task2_counter == 10)  // increases task2_counter from 0 to 1 then evaluates to false.
else if(++task3_counter == 100) // increases task3_counter from 0 to 1 then evaluates to false.
else printf("error\n");         // now you print the error message

我不知道你究竟想做什么,但我想你想在某个地方进行for循环,但如果没有关于你想要达到的目标的进一步信息,就不能说更多。


您可能想要添加一个循环,如:

#include <stdio.h>
#include <stdlib.h>
int task1_counter = 0;
int task2_counter = 0;
int task3_counter = 0;


void checkTasks()
{
    for (int i = 0; i <= 100; ++i) {
        if(++task1_counter ==2 )
        {
            task1_counter = 0;
            printf("etas1\n");
        }
        else if(++task2_counter == 10)
        {
            task2_counter = 0;
            printf("etas2\n");

        }
        else if(++task3_counter == 100)
        {
            task3_counter = 0;
            printf("etas3\n");
        }
        else
            printf("error\n");
    }
}


int main()
{

    checkTasks();
    return 1;

}

会打印:

error
etas2
error
error
error
error
error
error
error
etas10
.
.
.
相关问题