이정원
260
2019-04-15 18:05:53 작성 2019-04-15 18:06:07 수정됨
3
250

c++코드한번만 봐주세용~


string a[]={"red","5","blue","2","white","1","7"};

string c="";

for(int i=0;i< sizeof(a) / sizeof(a[0]) ;i++){

if(a[i]>a[i+1]){

c=a[i];

a[i]=a[i+1];

a[i+1]=c;

i=0;

}

}

문자열 배열을 정렬하려고 하는데 머리로 디버깅을 하면 잘 돌아가는데 컴퓨터로 디버깅을 하게되면

5,1,2,7,blud,red,white

이렇게  정렬이 되는데 디버깅하면서 데이터 이동 순서를 지켜보면 생각대로 잘 돌아가긴 하는데 5가 이상하게 앞에서 가만히 멈춰있네요? if문아래에 i를 0으로 초기화해서 그럼 5랑 1이랑도 다시한번비교를 해야하는데 왜 안할까요...? 

0
0
  • 답변 3

  • 박가사탕
    442
    2019-04-15 18:49:14

    i = -1;

    0
  • 이정원
    260
    2019-04-17 13:35:57
    감사합니다 생각해보니 0으로바꾼후에 ++이되서 1부터되네요... ㅎㅎ;
    0
  • linuxer
    1k
    2019-04-17 15:55:00
    박가사탕님만이 답변을 주셨네요
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.