편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.12.05

    c언어 동적할당배열 중복 제거 질문입니다.


    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int cnt, i, j;
        printf("몇 개의 숫자를 입력하시겠습니까? : ");
        scanf_s("%d", &cnt);
    
        int* arr = (int*)malloc(sizeof(int)*cnt);
        int* arr2 = (int*)malloc(sizeof(int) * cnt);
        int n = 1;
    
        if (arr != NULL & arr2 != NULL) {
    
            for (i = 0; i < cnt; i++) {
                printf("%d번째 정수 입력 : ", i + 1);
                scanf_s("%d", &arr);
            }
    
            arr2[0] = arr[0];
    
            for (i = 0; i < cnt; i++) {
                for (j = 0; j < cnt; j++) {
    
                    if (arr2[i] != arr[j]) {
                        arr2[i + 1] = arr[j];
                        n++;
    
                        break;
                    }
                }
            }
    
            for (i = 0; i < n; i++) {
                printf("%d", &arr[i]);
            }
    
        }
        free(arr);
        free(arr2);
    
        return 0;
    
    }
    

    배열을 동적 메모리 할당으로 받아서, 중복되는 값을 제거하고 싶습니다. arr[0] = arr2[0]; 줄에서 읽기 액세스 위반이라고 오류가 납니다. 어떻게 하면 될까요?

  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.12.05

    c언어 동적할당배열 중복 제거 질문입니다.


    include

    include

    int main() { int cnt, i, j; printf("몇 개의 숫자를 입력하시겠습니까? : "); scanf_s("%d", &cnt);

    int* arr = (int*)malloc(sizeof(int)*cnt);
    int* arr2 = (int*)malloc(sizeof(int) * cnt);
    int n = 1;
    
    if (arr != NULL & arr2 != NULL) {
    
        for (i = 0; i < cnt; i++) {
            printf("%d번째 정수 입력 : ", i + 1);
            scanf_s("%d", &arr);
        }
    
        arr2[0] = arr[0];
    
        for (i = 0; i < cnt; i++) {
            for (j = 0; j < cnt; j++) {
    
                if (arr2[i] != arr[j]) {
                    arr2[i + 1] = arr[j];
                    n++;
    
                    break;
                }
            }
        }
    
        for (i = 0; i < n; i++) {
            printf("%d", &arr[i]);
        }
    
    }
    free(arr);
    free(arr2);
    
    return 0;
    

    }

    배열을 동적 메모리 할당으로 받아서, 중복되는 값을 제거하고 싶습니다. arr[0] = arr2[0]; 줄에서 읽기 액세스 위반이라고 오류가 납니다. 어떻게 하면 될까요?