我正在處理一組處理字母集的C程序。但是,我遇到了一個問題。由於某種原因,該代碼一次打印兩次消息Enter next element of Set A
,因此它不會要求輸入兩者中的第一行。處理集問題的C程序
例如:
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++;
}
}
}
注意,類型的信是由我爲字母表中的所有字母定義,且組A是布爾類型的數組。 sizeA是他以前輸入的Set A的大小。
預先感謝您。
這似乎是你的緩衝區恨你,你有沒有嘗試過插入一個空的getchar? – Fenixp
你的代碼非常多餘。 – Jori