該程序正在排序數組中的字符串。排序功能停止工作沒有任何錯誤 - C
功能排序是它沒有編譯錯誤運行第3次後回採
int main(){
char * arrP1[] = { "father", "mother", NULL };
char * arrP2[] = { "sister", "brother", "grandfather", NULL };
char * arrP3[] = { "grandmother", NULL };
char * arrP4[] = { "uncle", "aunt", NULL };
char ** arrPP[] = { arrP1, arrP2, arrP3, arrP4 , NULL };
printAllStrings(arrPP);
sort(arrPP);
printAllStrings(arrPP);
return 0;
}
void sort(char ** arrPP[]) {
int i, j, n, pi, pj;
int t;
char * temp;
for (n = 0; n < 8; n++) {
pi = 0;
pj = 0;
printf("round %d\n", n);
for (i = 0; i < (sizeof(arrPP)); i++) {
for (j = 0; arrPP[i][j] != NULL; j++) {
t = 0;
if (i == 0 && j == 0)
continue;
while (1) { // checking wich word is bigger and swiching between them if needed
if (arrPP[pi][pj][t] == arrPP[i][j][t])
continue;
if (arrPP[pi][pj][t] > arrPP[i][j][t]) {
temp = arrPP[pi][pj];
arrPP[pi][pj] = arrPP[i][j];
arrPP[i][j] = temp;
break;
}
else {
break;
}
t++;
}
pi = i;
pj = j;
}
}
}
}
outpot:
(父,母)
(姐姐,哥哥,祖父)
(祖母)
(叔叔,嬸嬸)
輪0
輪1
輪2
預期outpot:
(父,母)
(妹妹,兄弟,爺爺)
(祖母)
(叔叔,嬸嬸)
輪0
輪1
輪2
輪3
輪4
輪5
輪6
輪7
(伯母,兄弟)
(父親,爺爺,奶奶)
(母親)
(siter,叔叔)
調試器告訴你什麼時候你通過代碼? –
我真的不知道如何在Visual Studio中使用調試器..但是當我使用調試器運行程序時,它顯示控制檯上的輸出並顯示CPU的優先級,直到達到100%。聽起來像一個無限循環? –
@ChenKahalany使用調試器相當簡單。轉到一條線並按F9設置中斷點。然後按F5啓動調試器,按F10步驟拋出代碼。在觀察窗口觀察結果。 – nikau6