2013-10-01 175 views
0

我试图找到数组的最大和最小值。我有'numArray',这是一串逗号分隔的数字(例如 - 3,5,1,6)。我正在使用标记器将它们分解为单独的整数并将它们存储在单独的数组中。然后我将它们排序并打印第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

通过'someStr'而不是'str'。 – deepmax

+1

您对整个数组进行排序,而不是对数字进行排序。请记住,数组未初始化并包含垃圾! std :: sort(nums,nums + i); – xMRi

回答

1

的错误就在于,你的参数minMaxAvg.SetWindowTextAstr,当你可能是指通过someStr,即。您传递的是原始字符串,而不是新格式化的字符串。

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

谢谢,我确实感到很愚蠢! – Madz