c语言!语言大神!急急急在线等!!!

2025-04-15 13:32:59
推荐回答(2个)
回答1:

C程序:


#include "stdio.h"


#define N 10


/* 起泡法排序 */

void BubbleSorting(int arr[], int n)

{

int temp;


for(int i=0; i

{

for(int j=0; j

{

if(arr[j] < arr[j+1])

{

temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

}


//二分查找,查找成功返回位置;否则插入该数,返回该数的位置

int BinarySearching(int arr[], int n, int key)

{

int low = 0;

int high = n - 1;

int mid;

int i;


while(low <= high) 

{

mid = (low + high) / 2;

if(arr[mid] == key)

{

return mid;

}

else if(arr[mid] < key) 

{

high = mid - 1;

}

else

{

low = mid + 1;

}

}


for(i=n-1; i>=mid; i--)

{

arr[i+1] = arr[i];

}

arr[mid] = key;

return mid;

}


void main()

{

int arr[2*N];

int i;

int key;

int pos;


printf("请输入十个整数:");

for(i=0; i

{

scanf("%d", &arr[i]);

}


BubbleSorting(arr, N);


for(i=0; i

{

printf("%d  ", arr[i]);

}

printf("\n");


printf("待查找数:");

scanf("%d", &key);


pos = BinarySearching(arr, N, key);


for(i=0; i

{

printf("%d  ", arr[i]);

}

}


运行效果:

回答2:

#include "stdio.h"
void input(int *p){
    int i;
    for(i=0;i<10;scanf("%d",p+i++));
}
void sort(int *p){
    int i,j;
    for(i=0;i<10;i++)
        for(j=0;j<9;j++)
            if(p[j]                p[j]^=p[j+1],p[j+1]^=p[j],p[j]^=p[j+1];
}
int search(int *p,int n){
    int i;
    for(i=0;i<10;i++)
        if(p[i]==n)
            return i;
    for(i=9;p[i]-1;p[i+1]=p[i--]);
    p[i+1]=n;
    return -i-2;
}
int main(void){
    int a[11],i,n;
    printf("Input 10 integers...\n");
    input(a);
    for(sort(a),i=0;i<10;printf("%d ",a[i++]));
    printf("\nInput n(int)...\n");
    scanf("%d",&n);
    i=search(a,n);
    if(i>=0) printf("There are %d, the subscript is %d\n",n,i);
    else printf("%d is inserted after the subscript is %d\n",n,-i-1);
    printf("\n");
    return 0;
}