세트를 다루는 C 프로그램에서 작업 중이며 C 프로그램에서 배열 값을 가져 오는 데 문제가 있습니다. 아래 기능에 논리적 오류가 있다고 생각합니다.
sizeA는 26이고 setA는 크기 26의 부울 집합입니다.
다음은 sizeA가 5 인 경우 함수가 나오는 방식입니다.
Enter the first element in Set A: //user enters h
Enter the next element of Set A: //user enters i
Enter the next element of Set A: //user enters j
Enter the next element of Set A: //user enters k
Enter the next element of Set A: //user enters l
fffffftttttffffffffffffff
그러나 sizeA가 5이면 다음과 같이 나타납니다.
Enter the first element in Set A: //user enters h
Enter the next element of Set A: //user enters i
Enter the next element of Set A: //user enters j
Enter the next element of Set A: //user enters k
Enter the next element of Set A: //user enters l
ffffff
이 문제를 해결하는 방법을 알고 싶습니다.
다음은 코드입니다.
void getSetA(bool setA[], int sizeA)
{
letters element, letter;
int position = 0, num, i;
for(i = 0; i < sizeA; i++) //sizeA is inputted before
{
setA[i] = FALSE;
}
printf("\nEnter the first element in Set A: ");
element = getcharNoBreaks();
if (element >= 'a' && element <= 'z')
{
setA[element-'a'] = TRUE;
}
for(num = 1; num < sizeA; num++)
{
printf("\nEnter next element of Set A: ");
element = getcharNoBreaks();
if(element >= 'a' && element <= 'z')
{
setA[element - 'a'] = TRUE;
}
else printf("Element out of range");
}
printf("\n");
for(i = 0; i < sizeA; i++)
{
if(setA[i] == TRUE) printf("t");
else printf("f");
}
}
그 주 letters
(알파벳 문자 모두 같은) 내가 정의한 유형이며, getcharNoBreaks()
getchar가에 해당하는 기능은 ()이다.
감사합니다 :)
그래서, 'h'- 'a'= (int) 7이고 만약 'z'- 'a'= 25. 맞죠? 질문은 :
. setA의 크기가 충분히 큰가요?
큰 배열이면. 추가 printf("intput c is :%c\n",element);
실제로 어떤 요소인지 확인해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다