可以做一下的C语言题目(一)
#include <stdio.h>
typedef struct {
int id;
const char * name;
} element;
void initElement ( element* elements, int size)
{
int i = 0 ;
for ( i = 0 ; i < size; i++ ) {
elements[ i] . id = i;
}
}
const element * find_element ( int id, element elements[ ] , int element_num)
{
int i = 0 , j = 0 , mid = 0 ;
j = element_num;
mid = ( i + j) / 2 ;
while ( i < j) {
if ( elements[ mid] . id > id) {
j = mid - 1 ;
} else if ( elements[ mid] . id < id) {
i = mid + 1 ;
} else {
return & elements[ mid] ;
}
mid = ( i + j) / 2 ;
}
return NULL ;
}
int main ( )
{
element elements[ 10 ] ;
const element * findElement;
initElement ( elements, 10 ) ;
findElement = find_element ( 5 , elements, 10 ) ;
if ( findElement == NULL ) {
printf ( "not find \n" ) ;
} else {
printf ( "id : %d \n" , findElement-> id) ;
}
findElement = find_element ( 11 , elements, 10 ) ;
if ( findElement == NULL ) {
printf ( "not find \n" ) ;
} else {
printf ( "id : %d \n" , findElement-> id) ;
}
return 0 ;
}