10개의 수를 입력 받아서 오름차순으로 출력하는 코드인데 숫자 입력 되는데 출력이 안 되네 왜 그런지 알려주라;;
#include <stdio.h>
int max_detect(int *parr);
int main() {
int arr+;
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
max_detect(arr);
return 0;
}
int max_detect(int *parr) {
int i, max = 0, comparison = 0, number = 0 ;
for (;;) {
for (i = 0; i < 10; i++) {
if (i == 0 || parr[i] >= comparison) continue;
else {
if (parr [i] > max) max = parr[i];
}
}
for (i = 0; i < 10; i++) {
if (parr[i] == max) printf("%d ", parr[i]);
number += 1;
}
if (number > 9) break;
}
return 0;
}
----------------------------------------수정--------------------------------------------------------------
#include <stdio.h>
int max_detect(int *parr);
int main() {
int arr+;
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
printf("\n");
max_detect(arr);
return 0;
}
int max_detect(int *parr) {
int i, max, comparison = 0, number = 0 ;
for (;;) {
max = 0;
for (i = 0; i < 10; i++) {
if (number != 0 && parr[i] >= comparison) continue; //이게 문제인 거 같다.
else {
if (parr [i] > max) max = parr[i];
}
}
for (i = 0; i < 10; i++) {
if (parr[i] == max) printf("%d\n", parr[i]);
}
number += 1;
comparison = max;
if (number >= 10) break;
}
return 0;
}
조언해 주신 분들 덕에 고쳤습니다.
베열이 없네
함수에서 말씀이신가요? 아니면 main 함수에서요?
함수에서는 포인터로 대체하면 되서 굳이 배열 정의 안 했거든요,
arr+
[10] 으로 적었는데 디씨 오류인듯
정렬만 하고 출력을 안한거 아님?
함수 안에 출력문 넣었어요
number+1을 10번반복 돌려버리니까 if(number>9) 에서 바로 빠져나가겠지
앗 실수했네요 감사합니다.
오름차순으로 정렬도 안되고, 출력도 max가 0일때, 배열값도 0인경우만 출력될텐데 다시짜셈
다른 방법으로 풀긴 했는데 이 방법으로도 한 번 풀어보려고 했었거든요 근데 말씀 듣고 다시보니 오류 투성이네요