C언어 코드를 어떻게 고쳐야할까요? ㅠㅜ

조회수 2282회

n이 입력될 때까지 임의의 개수(최대 m개)의 정수 데이터를 입력 받아 n을 제외한 입력 데이터들을 배열 int v[ ]에 저장한 다음 입력된 데이터의 개수를 리턴하는 함수 int GetIntArray(int v[ ], int m, int n), 길이가 n인 배열 int v[ ]에서 연속된 크기의 정수들이 입력에 포함된 길이의 최소값 min과 최대값 max를 리턴하는 함수 void StretchMinMax(int v[ ], int n, int* min, int* max)를 작성하고, 이를 이용하여 0이 입력될 때까지 정수들을 입력 받아, 연속된 크기의 정수들이 입력에 포함된 길이의 최소값과 최대값을 출력하는 프로그램을 작성하시오. 단, 입력되는 정수의 개수는 최대 10개인 것으로 가정하고 만약 10개 이상 입력될 경우 그 다음 입력들은 무시하시오. 또한 같은 값은 중복해서 입력되지 않는 것으로 가정하시오. 예를 들어, 1 4 5 9 2 6 8 10 0이 입력된 경우, 1~2, 4~6, 8~10의 정수 값들이 입력 되었으므로, 연속된 크기의 정수들이 입력에 포함된 길이는 2, 3, 3 이며, 길이의 최소값은 2이며 최대값은 3이다. (Ex. 1 4 5 9 2 6 8 10 0 -> 2 3)

이런 식의 코드인데 max는 잘 나오는데 min은 2로만 나와서 어떤 식으로 고쳐야 값이 제대로 나올까요? ㅠㅜ

include

include

int GetIntArray(int v[], int m, int n); void StretchMinMax(int v[], int n, int* min, int* max); int main(void) {

int ary[10];
int length;
int min = INT_MAX;
int max = INT_MIN;
length=GetIntArray(ary, 10, 0);
StretchMinMax(ary, length, &min, &max);
printf("%d %d", min, max);

return 0;

} int GetIntArray(int v[], int m, int n) {

int i;                            
int num;

for (i = 0; i < 10; i++) {
    scanf("%d", &num);
    if (num == n)break;
    v[i] = num;
}

return i;

} void StretchMinMax(int v[], int n, int* min, int* max) {//길이가 n인 배열 int v[ ]에서 연속된 크기의 정수들이 입력에 포함된 길이의 //최소값 min과 최대값 max를 리턴하는 함수

int i;
int scan;
int temp;
int j;
int length;


for (scan = 0; scan < n - 1; scan++) {
    for (i = 0; i < n - 1; i++) {
        if (v[i] > v[i + 1]) {
            temp = v[i];
            v[i] = v[i + 1];
            v[i + 1] = temp;
        }
    }
}

for (i = 0; i < n; i++) {
    length = 1;
    for (j = i; j < n; j++) { 
        if (v[j] + 1 == v[j + 1]) {
            length++;

            if (*max < length) {
                *max = length;
            }
            if (*min > length) {//min을고쳐야함-가장작은2가무조건저장됨
                *min = length;
            }

        }
        else break;
    }
}

}

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)