c语言高手进!!急! 程序死循环了!帮忙!

# include <stdio.h>
void main()
{
int a[10],b[10];
int i,j,t=0,m,n=0,k=0,c,d,q=0;
for(i=0;i<10;i++)
scanf("%d %d\n",&a[i],&b[i]);

for(j=0;j<9;j++)
{
for(i=0;i<9-i;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
for(m=0;m<10;m++)
printf("%d\n",a[m]);
n=n+1;
}
k=k+1;
}
printf("%d,%d\n",n,k);
for(i=0;i<10;i++)
{
q=i;
for(j=i+1;j<10;j++)
if(b[j]<b[q])
{
q=j;
n=n+1;
t=b[q];b[q]=b[i];b[i]=t;
for(m=0;m<10;m++)
printf("%d\n",b[m]);
}
k=k+1;
}
printf("%d,%d\n",n,k);
scanf("%d\n",&c);
for(i=0;i<10;i++)
{
if(c==a[i])
printf("%d\n",i);
if(i>=10)
printf("查无此数");
}
scanf("%d\n",&d);
j=5;
while(j>=0&&j<=9)
{
if(d==b[j])
printf("%d\n",j);
else if(d<b[j])
{
for(;;j--)
if(d==b[j])
printf("%d\n",j);
else printf("查无此数");
}
else if(d>b[j])
{
for(;;j++)
if(d==b[j])
printf("%d\n",j);
else printf("查无此数");
}
}
}

输入10个数 要求用 1。冒泡法 2选择法 再输入一个数 用1顺序查找法 2折半查找法 (以上四种方法都要用)
帮忙看看哪里错了 谢谢
急啊 明天要交了!!!!!!!! 好的再加分!!!!
程序 死循环了 或者你也可以帮忙重新写一份 谢谢!!!

第1个回答  推荐于2016-09-28
//---------------------------------------------------------------------------

#include <stdio.h>

void Ssort(int *a,int n) /*选择排序*/
{
int t,i,j,k;
for (i = 0; i<n-1; i++) {
k=i;
for (j=i+1; j<n; j++)
if (a[k]<a[j]) k=j;
if (k!=i) {
t=a[k];
a[k]=a[i];
a[i]=t;
}

}

}

void Bsort(int *a,int n) /*冒泡排序*/
{
int i,j,k,flag=0;
for (i = 0; i<n; i++) {
for (j=0; j<n-i-1; j++) {
if (a[j]>a[j+1]) {
flag=1;
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}
if (flag) break;

}
}

int Sfind(int *a,int size,int n) /*顺序查找*/
{
int i;
for (i = 0; i<size; i++) {
if (a[i]==n) {
return i;
}
}
return -1;
}
int Dfind(int *a,int size,int n) /*二分查找*/
{
int b=0,e=size-1;
while (b<e)
{
if (a[(e-b)/2]==n) {
return (e-b)/2;
}
else if (a[(e-b)/2]>n) {
e=(e-b)/2;
}
else if (a[(e-b)/2]<n) {
b=(e-b)/2;
}
}
return -1;
}
void prt(int *a,int size) /*输出数组*/
{
int i;
for (i = 0; i<size; i++) {
printf("%d ",a[i]);
}
putchar('\n');
}
int main(void)
{
int a[10],b[10];
int i,c,index;
for(i=0;i<10;i++)
scanf("%d %d\n",&a[i],&b[i]);
Bsort(a,10);
prt(a,10);

Ssort(b,10);
prt(b,10);

scanf("%d",&c);
index=Sfind(a,10,c);
if (index==-1) printf("查无此数");
else printf("%d\n",index);

scanf("%d",&c);
index=Dfind(b,10,c);
if (index==-1) printf("查无此数");
else printf("%d\n",index);

return 0;
}
//---------------------------------------------------------------------------本回答被提问者采纳