基本上,我正在创建一个程序,如果在给定数组中找到该数字,则将输出该数字,如果未找到则输出-1。(排序数组。)
#include <stdio.h>
#include <stdlib.h>
int cmp(const void*a,const void *b){
if(*(int*)a-*(int*)b>0) return 1;
if(*(int*)a-*(int*)b<0) return -1;
return 0;
}
int main() {
int n; scanf("%d",&n);
int a[n];
for(int i =0;i<n;i++)
scanf("%d",a+i);
for(int i =0;i<n;i++){
int *item;
item = (int*)bsearch(&i,a,n,sizeof(int),cmp);
if(item!=NULL) printf("%d ",i);
else printf("-1 ");
}
return 0;
}
输入 :10
-1 -1 6 1 9 3 2 -1 4 -1
输出 :
-1 1 2 3 4 -1 6 -1 -1 9
我的输出:
-1 -1 -1 3 4 -1 -1 -1 -1 -1