执行此程序时,它不会终止。
例如,如果我给它输入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);
}
}
答案 0 :(得分:0)
这是因为在这个循环之后
for (Counter = Counter - 1; Counter >= 0; Counter--)
{
printf("%d", BinaryArray[Counter]);
}
计数器将设置为0.修复存储是var中的值,并在for循环中使用它而不是使用Counter var。
答案 1 :(得分:0)
循环中有一个循环使用相同的全局控制变量。怎么做: