junwon9824
150
2021-05-04 19:14:15
2
81

c 언어 질문 있습니다.


ㅇㅇㅇ

#include<stdio.h>

int main() {

	/* Type or paste your code in this area */
	int b[10],cnt[10],s=0;
	int a[10];

	for (int i = 0; i < 10; i++)
	{

		b[i] = 0;

	}

	for (int i = 0; i < 10; i++)
	{

		scanf("%d", &a[i]);

	}


	for (int k = 0; k < 10; k++)
	{
		for (int t = 0; t < 10; t++)
		{

			if (b[t] != a[k])
			{

				b[s] = a[k];
				s++;

			}

		}
		
		
	}
	

	for (int i = 0; i < s; i++)
	{
		for (int j = 0; j < 10; j++)
		{

			if (b[i] == a[j])
				cnt[i]++;

		}
		
	}








	for (int i = 0; i < s; i++)
	{
		
		
			printf("%d %d", b[i], cnt[i]);


			printf("\n");
		
	}

	return 0;
}

컴파일을 했더니 이상하게 되는데, 혹시 오류좀 잡아주실수 있나요? 저는 a라는 배열로 숫자를 받아 b 라는 배열에 중복없이 생성하여  a 배열과 비교하여 갯수를 저장하고 , 출력하려 했으나, 안됩니다... ㅠㅠ

0
  • 답변 2

  • Hide_D
    643
    2021-05-04 20:32:20 작성 2021-05-04 20:33:59 수정됨

    26~37번째 라인에서 "중복 탐지"를 수행하질 못하네요.

    의도하신건 a[k]에 있는 값이 배열 b에 있는지를 확인하려는 듯 한데,

    있는지 없는지는 결국 루프를 다 돌아야만 알 수 있겠죠.


    두번째 루프 바깥에 '같은 값이 있었는지' 비교하는 변수가 있어야 하고,

    루번째 루프 안쪽에는 같은 값이 있는지 비교해서 변수에 값을 설정해주는 값이 있으면 되겠죠?

  • junwon9824
    150
    2021-05-06 20:09:03
    감사합니다!
  • 로그인을 하시면 답변을 등록할 수 있습니다.