函數(shù)kuaipai1 進(jìn)入了無限死循環(huán)。
創(chuàng)新互聯(lián)公司是專業(yè)的旌陽(yáng)網(wǎng)站建設(shè)公司,旌陽(yáng)接單;提供網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行旌陽(yáng)網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
遞歸函數(shù)沒有一個(gè)節(jié)點(diǎn)判定遞歸結(jié)束,導(dǎo)致進(jìn)入死循環(huán)
系統(tǒng)堆棧用完,程序崩潰。
程序調(diào)試報(bào)告有無限死循環(huán)危險(xiǎn),運(yùn)行后就直接崩潰,導(dǎo)致棧溢出。
你可以看看這個(gè)例子:
#include stdio.h
#include stdlib.h
int list[5] = {7,5,9,2,6};
int sort_function( const void *a, const void *b);
int main(void)
{
int x;
qsort((void *)list, 5, sizeof(int), sort_function);
for (x = 0; x 5; x++)
printf("%d\\n", list[x]);
return 0;
}
int sort_function( const void *a, const void *b)
{
if(*(int*)a*(int*)b)
return 1;
else if(*(int*)a*(int*)b)
return -1;
else
return 0;
}
#include?stdlib.h
#include?stdio.h
#define?MAXN?8
#define?MOD?1024
void?QuickSort(int?*arr,?int?low,?int?high)
{
if?(low?=?high)?return;
//保存排序區(qū)間的?起始位置和終點(diǎn)位置
int?left?=?low,?right?=?high;
//默認(rèn)?左邊第一個(gè)元素?為標(biāo)志
int?key?=?arr[low];
while?(low??high)
{
while?(low??high??arr[high]?=?key)?--high;
arr[low]?=?arr[high];
while?(low??high??arr[low]?=?key)?++low;
arr[high]?=?arr[low];
}
arr[low]?=?key;
//每次排序后都分成兩部分[left,?low)?(low,?right]
//arr[low]的位置是一定是有序的
QuickSort(arr,?left,?low?-?1);
QuickSort(arr,?low?+?1,?right);
return;
}
int?main(void)
{
int?n;
scanf("%d",?n);
int?arr[MAXN]?=?{0};
int?i;
for?(i?=?0;?i??n;?++i)
scanf("%d",?arr[i]);
//輸入是默認(rèn)為生活中習(xí)慣的數(shù)組左邊第一個(gè)為:編號(hào)1
int?s,?m;
scanf("%d?%d",?s,?m);
//轉(zhuǎn)成計(jì)算機(jī)數(shù)組第一個(gè)為:編號(hào)0
s--;?m--;
//快排
QuickSort(arr,?s,?m);
//輸出
for?(i?=?s;?i?=?m;?++i)
{
printf("%d?",?arr[i]);
}
return?0;
}
//測(cè)試數(shù)據(jù)
//8
//1?2?3?4?5?6?7?8
//2?6
輸出 6 5 4 3 2
#include stdio.h
#includestdlib.h
#includestring.h
int comp(char *a,char *b)
{
while(*a==*b*a*b){a++;b++;}
return (int)*a-(int)*b;
}
int main(void)
{
char s[1000][20];
int i,n;
scanf("%d\n",n);
for(i=0;in;i++)
gets(s[i]);
qsort(s,n,sizeof(s[0]),comp);
printf("\n");
for(i=0;in;i++)
puts(s[i]);
system("pause");
return 0;
}