배열 최소값이 왜 쓰레기값이 나오나요?

#include <stdio.h>
int main(void)
{
int a[8];
int i, mn;
mn = a[0];
for (i = 0; i < 8; i++)
{
scanf_s("%d", &a[i]);
if (mn > a[i]) mn = a[i];
}
printf("%d\n", mn);
return 0;
}
최대값은 잘나오는데..
최대값에서 부호만 바꿨는데 쓰레기값이 나옵니다

잘못된곳이 있나요?ㅠㅁㅠ

if (mx < a[i]) mx = a[i]; 이건 배열의 최대값
if (mn > a[i]) mn = a[i]; 이건 배열의 최소값일텐데..

하..자꾸만 까먹어서 힘드네요
<script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

12개의 댓글

2018.06.13
mn = a[0];
mn의 초기값이 어떤 값인지 알 수 없으므로 정상적인 작동이 안될것
limits.h의 INT_MAX, INT_MIN을 써서 코딩하면 될듯
이게 귀찮으면 2147483647, -2147483648 써도 되고
0
2018.06.13
@rondoletti
어...제가 초보라 그런지 말씀이 어렵네요 ..ㅎㅎ

근데 제가 배울때는 mn = a[0]; 이렇게 초기화 하라했는데..
mx = a[0];

감사합니다
0
2018.06.13
@rondoletti
#include <stdio.h>
int main(void)
{
int a[8];
int i, mn;

for (i = 0; i<8; i++)
{
scanf_s("%d", &a[i]);
mn = a[0];
if (mn > a[i]) mn = a[i];
}

printf("%d\n", mn);
return 0;
}
감사합니다!스캔에프는 이렇게 짜는거였군요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
0
2018.06.13
@milmill
ㅇㅇ 요것두 되겠네. 즐프!
0
2018.06.13
@rondoletti
#include <stdio.h>
int main(void)
{
int a[3][4] = { {10,5,6,-8},{7,6,-11,22},{31,2,44,9} };
int i, j, hap, mx, mn;
hap = 0;
mx = a[0][0];
mn = a[0][0];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)

hap += a[i][j];

if (a[i][j] > mx) mx = a[i][j];
if (a[i][j] < mn) mn = a[i][j];

}

printf("합:%d\n", hap);
printf("최대:%d\n", mx);
printf("최소:%d\n", mn);
return 0;
}

저..마지막으로 이건 진짜 문제없지않나요?

이게 또 최소값이 쓰레기가 나옵니다 ㅜ
0
2018.06.13
@milmill
for문을 쓸 때에는 반드시 중괄호를 같이 넣어야함

쓰지 않을 경우 바로 다음에 오는 한 문장만 for문에서 실행되는데,
이 경우 for (j = 0; j < 4; j++) 에서 hap += a[i][j]만 실행되고,
밑의 if문 2개는 실행되지 않아서 생기는 문제임
0
2018.06.13
@rondoletti
아!!

자꾸사소한거 실수하네요ㅠㅠ감사합니다!!
0
2018.06.13
윗게이 말대로 초기값이 안잡혀서 그럼 굳이 INT_MAX 안써도 scanf 밑에서a[0]를 선언해주면 잘돌아갈듯 max 했을때도 쓰레기값들어갔는데 음수값이라 검출안된거고
0
2018.06.13
@낙루
그럼 어떻게 짜야하나요?..

지금까지 짠게 잘못된거였다니...
0
2018.06.13
@낙루
#include <stdio.h>
int main(void)
{
int a[8];
int i, mn;

for (i = 0; i<8; i++)
{
scanf_s("%d", &a[i]);
mn = a[0];
if (mn > a[i]) mn = a[i];
}

printf("%d\n", mn);
return 0;
}

감사합니다 덕분에 수정했습니다!ㅠㅠㅠㅠㅠ스캔은 이렇게짜는거였군요,.
0
2018.06.14
@milmill
??이게된다고 ? mn 을 매번 a0 로 해주는데 될리가. 마지막나온게 a0 보다만 작으면 최소값이 그게되는디..
그냥 if 조건을 (i==0 || mn>a[i] ) 로 바꿔라.. 참고로 || 순서 바뀌면 안되니 순서 저대로 하고
0
2018.06.14
@닥쵸바빠
헉 잘되던데...ㄷㄷ

감사합니당
0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
180423 [컴퓨터] 라데온으로 헬다2 돌리시는분 5 에더리 0 29 분 전 22
180422 [컴퓨터] 모니터 한대 더 사려는데 오버려나? 3 or5469 0 33 분 전 21
180421 [컴퓨터] PC 유튜브 쇼츠 좋아요 버튼 안 눌러지는 문제 3 프로숨쉼이 0 1 시간 전 34
180420 [컴퓨터] 요즘도 수냉쿨러 DIY로 하면 ㅈ됨? 4 개밥뺏어먹기대회일등 0 2 시간 전 94
180419 [컴퓨터] CPU 쿨러에서 갑자기 덜덜덜 하고 소음이 존나 크게 나는데 6 로스앤젤리스요정 1 3 시간 전 91
180418 [잡담] 이어폰 추천좀 1 dlatnaks 0 5 시간 전 66
180417 [잡담] 쿨엔 사이트 망해버렸나보다 12 익명36 0 5 시간 전 287
180416 [잡담] obs 사용시 gtx 시리즈랑 rx 시리즈랑 성능 차이 있음?? 21 해물잠봉 0 11 시간 전 168
180415 [컴퓨터] 컴퓨터 첫 on 흙수저 0 13 시간 전 114
180414 [컴퓨터] 이거 나사 드라이버 뭐 사용해야 되나요 4 흙수저 0 13 시간 전 114
180413 [프로그래밍] 반응형 웹페이지가 내가상상한거랑 좀 다르네 3 평택국 0 13 시간 전 240
180412 [컴퓨터] 윈도우 11 정품 구매해버렸다 3 69746974 1 14 시간 전 248
180411 [컴퓨터] 가난뱅이 컴퓨터 자랑 7 69746974 2 16 시간 전 325
180410 [컴퓨터] 고사양 게임 돌리면 컴퓨터가 멈춥니다 ㅠㅠ 21 탱이탱이뭉탱이 1 17 시간 전 184
180409 [컴퓨터] 5600x >5700x3d 하려는데 체크 좀 2 오뜨 0 17 시간 전 174
180408 [잡담] 윈도우 클린설치하다가 메인보드 뻑가나..? 6 꺄꺄룽 0 18 시간 전 130
180407 [컴퓨터] 사촌이 컴터산다고하는디 9 허풍이 0 19 시간 전 230
180406 [컴퓨터] 콤퓨타 글카 보조전원 다껴야대는거야? 7 초아랑모텔감 0 19 시간 전 139
180405 [잡담] 긱바 650m-k랑 애자락 라이트닝중에 어느거사지 15 전기모기채는신이야 0 19 시간 전 49
180404 [컴퓨터] 컴린이 150주고 본체 맞췄는데 괜찮나여 11 녹색너구리 0 19 시간 전 132