2

文字セットを扱う C プログラムに取り組んでいます。しかし、問題が発生しました。何らかの理由で、コードはメッセージEnter next element of Set Aを一度に 2 回出力するため、2 つの行の最初の行に入力を求めません。

例えば:

If the size of Set A is 5, the program will print:

Enter first element of Set A:(user inputs f)

Enter next element of Set A:(doesn't allow user to input value) <--printed at same time with line below
Enter next element of Set A:(allows a user input)

Enter next element of Set A:(doesn't allow user to input value) <--printed at same time with line below
Enter next element of Set A:(allows a user input)

コードは次のとおりです。

void getSetA(bool setA[], int sizeA) 
{
      letters element, letter;
      int position = 0, num;

      printf("\nEnter the first element in Set A: ");
      element = getchar();
      for(letter = a; letter <= z; letter++)
      {
                if(element == letter)       setA[position + 1] = true;
                else                        position++;           
      }
      for(num = 1; num <= sizeA -1; num++)
      {
                printf("\nEnter next element of Set A: ");
                element = getchar();
                for(letter = a; letter <= z; letter++)
                {
                           if(element == letter)       setA[position + 1] = true;
                           else                        position++;           
                }
      }
}

タイプ文字はアルファベットのすべての文字として私が定義したことに注意してください。setA はブール型の配列です。sizeA は、ユーザーが以前に入力したセット A のサイズです。

前もって感謝します。

4

2 に答える 2