2016-07-08 36 views
-1

我想使用printf进行调试。我已经将它插入for循环,但我没有收到它的输出。我确信算法在它到来之后仍在继续,就像读者忽略它一样。Printf之间两个不同的循环不工作

下面的代码:

for (i = 0; i < lower; ++i) { 
    buf3[i] = (buf[i] + buf2[i])/2; 
    printf("\n %d",buf3[i]); 
} 
printf("hiiiiiiiiiiiiiiiiiiii %d",i); 

for (i; i < upper; ++i) { 
    if (upper == num2) { 
     buf3[i] += buf2[i]/2; 
     printf("\n %d",buf3[i]); 

    } 
    else { 
     buf3[i] += buf[i]/2; 
     printf("\n %d",buf3[i]); 

    } 
} 


printf("\n %d",upper); 

的“hiiiii ...”消息是一个不被人看到在屏幕上。 (我尝试用int或其他任何其他消息替换它,但是徒劳无功,我也尝试在第一个for循环之上放置另一个printf,并且它没有返回任何东西)。

请注意,上限和下限不是很大的数字。

在此先感谢。

+0

什么是价值'lower'? – ameyCU

+0

下面的值是14962. –

+0

[为什么printf在无限循环之前无法工作?](http://stackoverflow.com/questions/7508630/why-does-printf-not-work-before-infinite-循环) –

回答

3

初始化问题不打印一个新行,所以输出进行缓冲直到稍后printf打印新行的printf

添加换行,你应该看到输出:

printf("hiiiiiiiiiiiiiiiiiiii %d\n",i); 
0

尝试在%d之后添加\ n。
此外,我并不在第二回路

+0

退出for循环后它不会被删除,所以它被'初始化'。至于新行,谢谢。 –