进入死循环的一个程序
题目要求是:对字符数组中的字母按由大到小的字母顺序进行排列:#include <stdio.h>
#include <stdlib.h>
#define NUM 26
void arrout1(char a[],int n)
{int i;
for (i=0;i<n;i++)
{a[i]=getchar();
printf("%2c",a[i]);}
putchar('\n');}
void arrout2(char a[],int n)
{int i;
for (i=0;i<n;i++)
printf("%2c",a[i]);
putchar('\n');}
void arrsort(char *a,int n)
{int i,j,p,t;
for(j=0;j<n-1;j++)
{p=j;
for(i=j+1;i<n;i++)
if(a[p]<a[i])p=i;
if(p!=j)
{t=a[j];a[j]=a[p];a[p]=t;}
}
}
main()
{char a[NUM];
printf("output the characters:\n");
arrout1(a,NUM);
arrsort(a,NUM);
printf("output the characters after sorted:\n");
arrout2(a,NUM);
system("PAUSE");
return 0;
}
可是程序走到arrsort函数那儿不走了,貌似是进入了死循环,可是我自己看不出来。。。