#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的语句,但上面的代码将直接打印错误。上面的代码有什么问题 有人可以指导我吗?
答案 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
.
.
.