#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개의 댓글
무분별한 사용은 차단될 수 있습니다.
rondoletti
mn의 초기값이 어떤 값인지 알 수 없으므로 정상적인 작동이 안될것
limits.h의 INT_MAX, INT_MIN을 써서 코딩하면 될듯
이게 귀찮으면 2147483647, -2147483648 써도 되고
milmill
근데 제가 배울때는 mn = a[0]; 이렇게 초기화 하라했는데..
mx = a[0];
감사합니다
milmill
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;
}
감사합니다!스캔에프는 이렇게 짜는거였군요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
rondoletti
milmill
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;
}
저..마지막으로 이건 진짜 문제없지않나요?
이게 또 최소값이 쓰레기가 나옵니다 ㅜ
rondoletti
쓰지 않을 경우 바로 다음에 오는 한 문장만 for문에서 실행되는데,
이 경우 for (j = 0; j < 4; j++) 에서 hap += a[i][j]만 실행되고,
밑의 if문 2개는 실행되지 않아서 생기는 문제임
milmill
자꾸사소한거 실수하네요ㅠㅠ감사합니다!!
낙루
milmill
지금까지 짠게 잘못된거였다니...
milmill
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;
}
감사합니다 덕분에 수정했습니다!ㅠㅠㅠㅠㅠ스캔은 이렇게짜는거였군요,.
닥쵸바빠
그냥 if 조건을 (i==0 || mn>a[i] ) 로 바꿔라.. 참고로 || 순서 바뀌면 안되니 순서 저대로 하고
milmill
감사합니당