当我运行c程序时,三个循环没有终止?

时间:2017-05-13 18:17:48

标签: c

执行此程序时,它不会终止。

例如,如果我给它输入A,输出将是:

65 
7
1000001
0
65
7
1000001
...

我的代码:

#include <stdio.h>
#include <string.h>

void main()
{
    int BinaryArray[10], Counter = 0, CounterTwo = 0, length, Ascii = 0;
    char inputstring[100];
    printf("Enter the string: ");
    scanf("%s", inputstring);
    // Ascii = 'B';
    // printf("%d\n", Ascii);
    // printf("%d\n", inputstring[0]);
    // printf("The Ascii value of %c is %d", 'A', 'A');
    length = strlen(inputstring);
    // printf("%d\n", length);

    for (Counter = 0; Counter < length; Counter++)
    {
        Ascii = inputstring[Counter];
        printf("%d\n", Ascii);
        for(Counter = 0; Ascii > 0; Counter++)
        {
            BinaryArray[Counter] = Ascii % 2;
            Ascii = Ascii / 2;
        }
        printf("%d\n", Counter);
        for (Counter = Counter - 1; Counter >= 0; Counter--)
        {
            printf("%d", BinaryArray[Counter]);
        }
        printf("\n");
        Ascii = 0;
        printf("%d\n", Ascii);
    }
}

2 个答案:

答案 0 :(得分:0)

这是因为在这个循环之后

for (Counter = Counter - 1; Counter >= 0; Counter--)
    {
        printf("%d", BinaryArray[Counter]);
    }

计数器将设置为0.修复存储是var中的值,并在for循环中使用它而不是使用Counter var。

答案 1 :(得分:0)

循环中有一个循环使用相同的全局控制变量。怎么做:

  1. 为特定循环使用其他变量
  2. 在for循环中使用局部变量。