2017-05-13 4 views
1

このプログラムを実行すると、終了しません。私はそれを入力Aを与える場合私は3つのループが終了していないCプログラムを実行している間ですか?

たとえば、出力は次のようになります。

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

それだから、このループ

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

カウンターの後ストアを修正するには、varに値を格納し、それをCounter変数を使用する代わりにforループで使用します。

0

同じグローバル制御変数を使用してループ内にループがあります。何を行うには:

  1. は、特定のループのために別の変数のためのループで
  2. 使用ローカル変数を使用してください。
関連する問題