程序保持循环

时间:2013-10-13 12:04:05

标签: c

由于某些我无法理解的原因,当我在CMD中执行时,该程序会保持循环。

#include <stdio.h>
int main() {
    char array [] = {'b','f','r','o','a','u','v','t','o','\0'};
    int grootteArray = sizeof(array);
    int grootteChar = sizeof(char);               
    int lengteArray = grootteArray / grootteChar;
    int i;
    for (i = 0; i < lengteArray + 1; i + 2) {
        printf("%c", array[i]);
    }
    return 0; 
}

4 个答案:

答案 0 :(得分:8)

每次循环后,您的计数器变量保持不变。您需要通过分配新值来增加它:

for (i=0; i<lengteArray+1; i=i+2) //change to this

答案 1 :(得分:7)

因为i永远不会改变。您应该将i + 2分配给i

for (i=0; i<lengteArray+1; i = i + 2) {
                             ↑

您编写它的方式对i的值没有影响,它只计算i + 2并且对此值不执行任何操作。

你得到了无限循环,因为i设置为0而且它总是0 ..所以一旦i < legteArray + 1,它就会像那样。

答案 2 :(得分:2)

i未在您循环中修改。此外,i < lengteArray + 1将引导您打印垃圾值和未定义的行为。

for (i = 0; i < lengteArray; i++){
    printf("%c", array[i]);
}     

如果您有兴趣在每次迭代中将i递增2,那么您可以使用i += 2

for (i = 0; i < lengteArray; i += 2){
    printf("%c", array[i]);
}    

答案 3 :(得分:2)

永远不会更改i的值。

试试这个: -

for (i=0; i<lengteArray+1; i = i+2) {