首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

初学者写的一个程序,麻烦各位大神进来看上,多谢

2013-01-23 
菜鸟写的一个程序,麻烦各位大神进来看下,谢谢自己写的一个小程序,先手动输入一个数组,然后显示该数组,之后

菜鸟写的一个程序,麻烦各位大神进来看下,谢谢
自己写的一个小程序,先手动输入一个数组,然后显示该数组,之后用冒泡排序和二分查找来排序数组以及查找一个数。但是程序执行到显示数组的时候就不往下执行了,本人菜鸟一枚,求各位大大指教下问题出在哪,谢谢了下面是代码:

#include<stdio.h>
#include<stdlib.h>

void Bouble(int n,int a[]){
int i,j,temp;
for(i=0;i<=n-2;i++){
for(i=0;i<=n-j;i++){
if (a[i]>a[i+1]) {
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
printf("the result is:\n");
for(i=0;i<n;i++){
printf("%d",a[i]);
}
printf("\n");
}

void Find(int n,int a[]){

int x,top=0,bot=n-1;
int mid;

printf("输入要查找的数:\n");
scanf("%d",&x);

while(top<=bot){

mid=(top+bot)/2;
if(x==a[mid]){
printf("找到元素,位置为:%d",mid);
exit(0);
}
else if (x>a[mid]) top=mid+1;
else bot=mid-1;
}
printf("没有找到该元素!\n");


}

void main(){
int a[10],n,i=0;
printf("输入数组长度n:\n");
scanf("%d",&n);
printf("输入数组元素:\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);

}

printf("输入的数组为:\n");
for(i=0;i<n;i++){
printf("%d\n",a[i]);
}
Bouble(n,a);
Find(n,a);

}

[解决办法]
for(j=0;j<=n-2;j++){
        for(i=0;i<=n-j;i++){
            if (a[i]>a[i+1]) {
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            }
        }
    }

热点排行