Po uruchomieniu programu funkcja wprowadzanie() jakby pomija funkcje gets(), ktora dotyczy tablicy autor[] i i=0. Z czego może to wynikać. Podchodziłem od kilku stron, ale nie wiem. Dodam, że jestem jeszcze zielony w tematyce programowania. Ponizej kod programu, funkcje wyszukiwaniea() i wyszukiwanietyt() jeszcze nie testowalem, bo zawizielem sie na to. Tam też pewnie są jakies bledy ;)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAKS 100
int menu(void);
void wprowadzanie(void);
void wyszukiwaniea(void);
void wyszukiwanietyt(void);
char autor[MAKS][30];
char tytul[MAKS][30];
char wydawnictwo[MAKS][30];
int main(void){
int i;
do{
i=menu();
switch(i){
case 1:wprowadzanie();
break;
case 2:wyszukiwaniea();
break;
case 3:wyszukiwanietyt();
break;
} }while (!(i==4));
return 0;
}
int menu(void){
int k;
printf("Biblioteka\n");
printf("1.Wprowadzanie danych\n");
printf("2.Wyszukiwanie po autorze\n");
printf("3.wyszukiwanie po tytule\n");
printf("4.Koniec\n");
printf("Dokonaj wyboru:\n");
scanf("%d", &k);
return k;}
void wprowadzanie(void){
int i;
for(i=0;i<MAKS;i++){
printf("Podaj autora\n");
gets(autor[i]);
if(!strcmp(autor[i],"koniec")) break;
printf("Podaj tytul\n");
gets(tytul[i]);
printf("podaj wydawnictwo \n");
gets(wydawnictwo[i]);
}
}
void wyszukiwaniea(void){
int i;
char podaja[40];
printf("podaj autora\n");
gets(podaja);
i=0;
for(i=0;i<MAKS;i++){
if(!strcmp(autor[i], podaja)) {printf("Tytuł %s", tytul[i]);
printf("Wydawnictwo %s", wydawnictwo[i]); break;
}
}
}
void wyszukiwanietyt(void){
int i;
char podajtyt[40];
printf("podaj tytul\n");
gets(podajtyt);
i=0;
for(i=0;i<MAKS;i++){
if(!strcmp(tytul[i], podajtyt)) {printf("Autor %s", autor[i]);
printf("Wydawnictwo %s", wydawnictwo[i]); break;
}
}
}
<code class="c"> - msm