2013-10-01 4 views
0

배열의 최대 값과 최소값을 찾으려고합니다. 쉼표로 구분 된 숫자의 문자열 인 'numArray'가 있습니다 (예 : 3,5,1,6). 저는 토큰 화기를 사용하여 개별 int로 분리하고 별도의 배열에 저장합니다. 나는 그 다음 그들을 정렬하고 0 번째 요소를 인쇄하지만, 'nums [0]'은 3,5,1,6에서와 같이 정확한 배열로 전체 배열을 인쇄합니다. 정렬 부분에 주석을 달았지만 여전히 전체 배열을 가지고 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 저는 C++의 초보자입니다.정렬 된 정수 배열 요소 인쇄

CString str = numArray; 
int i=0; 
int nums[50]; 
int nTokenPos = 0; 
CString strToken = str.Tokenize(_T(","), nTokenPos); 

while (!strToken.IsEmpty()) 
{ 
    int x = atoi(strToken); 
    nums[i]=x; 
    strToken = str.Tokenize(_T(","), nTokenPos); 
    i++; 
} 
std::sort(nums,nums+50); 
int min = nums[0]; 
CString someStr; 
someStr.Format(_T("The minimum number is: %d"), min); 
minMaxAvg.SetWindowTextA(str); 
+1

'str' 대신'someStr'을 전달하십시오. – deepmax

+1

번호가있는 부분뿐만 아니라 전체 배열을 정렬합니다. 배열은 초기화되지 않았고 쓰레기가 들어 있음을 기억하십시오! std :: sort (nums, nums + i); – xMRi

답변

1

오류는 아마, 즉 someStr를 전달하는 의미 때 minMaxAvg.SetWindowTextA로 인수가 str 있다는 사실에있다. 새로 포맷 된 문자열 대신 원래 문자열을 전달하고 있습니다.

minMaxAvg.SetWindowTextA(str);  /* <- this   */ 
minMaxAvg.SetWindowTextA(someStr); /* <- should be this */ 
+0

고마워, 나는 어리 석다. – Madz