#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");
}
Fich: Diccionario
Recursión: Busqueda binaria en vector ordenado
#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
}
}
Suscribirse a:
Entradas (Atom)