使用C中的for循环打印值的输出错误

时间:2014-02-08 08:19:23

标签: c

我写了一个简单的C程序来打印所有3的倍数但是在运行期间我的代码有一些错误:

#include <stdio.h>

void main(void) {
    int i, x;
    for(i = 1; i < 1000; i++) {
        x = i % 3;
        if(x == 0) {
            printf("%d\n", i);
        }
     }
}

问题是,如果我在循环中输入大于891到1000的数字,则输出从6开始而不是3,如果我按上述方式编写代码,则输出从114开始。对于小于或小于的值等于891,显示正确的输出。

1 个答案:

答案 0 :(得分:1)

确保您可以查看所有输出:

reuts@reuts-K53SD:~/ccccc$ cat mmph.c && gcc mmph.c
#include<stdio.h>
main(){

    int i,x;
    for(i=1;i<1000;i++)
    {
        x=i%3;

        if(x==0){
            printf("%d\n",i);

        }
    }
}
reuts@reuts-K53SD:~/ccccc$ ./a.out | egrep "^3$|999"
3
999

正如您所看到的,这很有效。您的输出可能已截断。