容易犯错
总阅读次
- 数组越界
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void sortArray(int* nums, int numsSize)
{
for(int i0=0;i0<numsSize;i0++)
{
int Min=nums[i0];
int pos=i0;
for(int j1=i0;j1<numsSize-1;j1++) //j1<numsSize-1 不然下面 if对比会导致数组越界: j1+1越结值为0,会让下面if条件 跟0做对比!
{
if(nums[j1]>nums[j1+1])//j1+1
{
Min=nums[j1+1];
pos=j1+1;
}
}
int temp=nums[i0];
nums[i0]=Min;
nums[pos]=temp;
// for(int it=0;it<numsSize;it++)
// {
// printf("[%d] ",nums[it]);
// }
// printf("\n");
}
}
int main()
{
int arr[8]={3,4,5100,23,4,5,0,-1};
sortArray(arr,8);
printf("\nresult-------->\n");
for(int it=0;it<8;it++)
{
printf("[%d] ",arr[it]);
}
printf("\n");
return 0;
}