초보인데 최대최소 구하기 문제풀다가요....ㅠ
아픔이보여
#include iostreamusing namespace std;void main (){ int a; int input[255]; int i=0;
cout숫자갯수입력 : ; cina;
for(i=0 ; ia ; ++i) { couti+1번째 수:; cininput[i];
if(input[i]==input[i-1]) { cout중복된 숫자가 있습니다. 다시입력하세요endl; i=0; }
}
int MAX=input[0]; int MIN=input[0];
for(i=0 ; ia ; ++i) { if(MAXinput[i]) { MAX=input[i]; }
if(MINinput[i]) { MIN=input[i]; }
}
cout최대:MAXendl; cout최소:MINendl;}
숫자 몇개를 입력할건지 정한다음정한 갯수만큼 숫자를 입력하면최대최소가 출력되야 하는데요중복된 숫자가 있으면 처음부터 다시입력하도록 하라는데
저렇게 만들었더니 처음부터 다시치는게 아니라두번째 숫자부터 다시치도록 나오네요 ㅠㅠ
if(input[i]==input[i-1]) { cout중복된 숫자가 있습니다. 다시입력하세요endl; i=0; }
여기서 i를 0으로 만들어줬으니까 처음부터 다시 시작하는거 아닌가요?
혹시나해서 i를 -1로 만들어 줬더니 잘되네요왜 0이 아니라 -1인지 모르겠어요
-
초롬 2023-08-09
if 문을 종료하고 다시 for 문 처음에서 ++i 가 있으니까 i=0 이 i=1로 되잖아요.
i=-1로 하면 ++i 로 인해 i=0으로 되겠죠.
그런데 if(input[i]==input[i-1]) 는 바로 전에 입력받은 숫자랑만 중복 여부 체크하네요..
전에 입력받은 모든 값들과 중복 여부 체크하려면 for 문을 다시 한번 더 돌려야 할 거 같아요.