Fich: Diccionario

diccionario struct.html
#include <stdio.h>
#include <string.h>

FILE *fd;

struct diccionario{
	char spanish[50];
	char english[50];
}palabras[100];

int anadir();
int mostrar();

int main(){
	
	int opc;
	
	printf("\tMENU \n\n");
	printf("1. Anadir palabra\n2. Traducir palabra\n3. Mostrar palabras\n4. Salir\n\n");
	printf("Ingrese la opcion deseada: \n");
	scanf("%d", &opc);
	
	switch(opc){
		case 1: anadir(); break;
		case 4: printf("saliendo del programa\n"); break;
		//case 2: traducir(); break;
		case 3: mostrar(); break;
		default: printf("Opcion no valida\n");
	}
	//traducir();
	//mostrar();	
	
	system("pause");
	return 0;
}

int anadir(){
	FILE *fd;
	struct diccionario palabras;
	char rpt;
		
	fd = fopen("diccionario.txt","at");
	
	if(fd==NULL){
		printf("Error al anadir palabra\n");
		return 1;
	}
	printf("\nAnadiendo nueva palabra\n");
	
	do{
		fflush(stdin);
		printf("Ingrese palabra en espanol: ");
		gets(palabras.spanish);
		printf("Ingrese traduccion al ingles: ");
		gets(palabras.english);
		
		fprintf(fd,"\nPalabra en espanol: ");
		fwrite(palabras.spanish,1,strlen(palabras.spanish),fd);
		fprintf(fd,"\nPalabra en ingles: ");
		fwrite(palabras.english,1,strlen(palabras.english),fd);
		
		printf("Desea seguir agregando palabras? (s/n): ");
		scanf("%c",&rpt);	
	}while(rpt != 'n');
	fclose(fd);
}

int traducir(){
	FILE *fd;
	struct diccionario palabras;
	struct diccionario;
	int cont=0;
	
	fd = fopen("diccionario.txt", "rt");
	if(fd==NULL){
		printf("No se ha podido leer el archivo\n");
	}
	
	printf("\nIngrese la palabra en espanol que quiere traducir: ");
	gets(palabras.spanish);
	
	while(!feof(fd)){
		fread(diccionario,sizeof(diccionario),1,fd);
		
		if(strstr(spanish,diccionario.spanish)){
			printf("Espanol: %s\n",diccionario.spanish);
			printf("Ingles: %s\n",diccionario.english);
		}
		cont++;
	}
	fclose(fd);
	
	
}

int mostrar(){
	FILE *fd;
	int c;
	struct diccionario palabras;
	
	fd = fopen("diccionario.txt", "rt");
	if(fd==NULL){
		printf("No se ha podido leer el archivo\n");
	}
	printf("\n\nMostrando las palabras... \n");
	while(!feof(fd)){
		c=fgetc(fd);
		printf("%c",c);
	}
	fclose(fd);
	printf("\n\n");
}

Recursión: Busqueda binaria en vector ordenado

busqueda binaria vector odenado recursion.html
#include <stdio.h>

int buscar(int v[], int i, int d, int x);

int main(){
	
	int vector[] = {1,2,3,4,5,6};
	int dato, izq = 0, der = 0, resultado;
	
	printf("Ingrese numero a buscar: ");
	scanf("%d",&dato);
	fflush(stdin);
	
	resultado = buscar(vector, izq, der, dato);
	
	printf("%d ",resultado); //no sé
	
	system("pause");
}

int buscar(int v[], int i, int d, int x){
	
	int centro;
	
	if(i>=d){
		centro = (i+d)/2;
	
	if(v[centro]==x){
		return centro; // Caso base 1, exito
		
	}
	else{
		if(v[centro]>x){
			return buscar(v, i, centro-1, x); //izquierda
		}
		else{
			return buscar(v, centro+1, d, x); // derecha
		}
	}
	
	}
	else{ // i>d
			return (-1); // Caso base 2, fracaso
		}
}