![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 19.12.2012
Сообщений: 2
|
![]()
/*Sozdaite fail katalog knig.
Naidite spetsialinosti p k-roi imeetsea naibolishee 4islo knig.*/ #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<malloc.h> typedef struct Kniga { char spetsialinosti[40], avtor[40], nazvanie[80]; int god;} Kniga ; typedef struct Spets{ char nazv_sp[40]; int kol_vo; } Spets ; int main() { Kniga katalog; Spets *sp; int i, imax; int n; FILE *fk; sp=(Spets*)calloc(n,sizeof(Spets)); printf ("Vvesti kol-vo spetsialinostei: n="); scanf("%d",&n); for (i=0; i<n; i++ ) {printf(" vvedite nazvanie spetsialinosti %d :",i); scanf("%s",sp[i].nazv_sp); (sp[i].kol_vo)=0; printf("sp[%d].kol_vo=%d\n",i,sp[i].kol_vo); } if ((fk = fopen("katalog.dat","w"))==NULL) printf("Nevozmojno otkriti fail!!!\n"); else { printf("vvesti spetsialinosti, avtora, nazvanie knigi, god izdania \n"); printf("vvesti EOF dlea zavershenie programi\n"); // - Po4emu???? printf("? "); scanf("%s %s %s %d",katalog.spetsialinosti,katalog. avtor,katalog.nazvanie,&katalog.god ); while (!feof(stdin)){ fprintf(fk,"%s %s %s %d\n",katalog.spetsialinosti,katalo g.avtor,katalog.nazvanie,katalog.go d); printf("? "); scanf("%s %s %s %d",katalog.spetsialinosti,katalog. avtor,katalog.nazvanie,&katalog.god ); } fclose( fk ); } if ((fk = fopen("katalog.dat","r"))==NULL) printf("Nevozmojno otkriti etot fail!!!\n"); else { while ( !feof(stdin)) { for (i=0; i<n; i++ ) { if (sp[i].nazv_sp==katalog.spetsialinosti) sp[i].kol_vo=sp[i].kol_vo+1; else printf("drug spets!!!\n"); } } } for (i=0; i<n; i++) {printf("Po spetsialinosti nr.%d - %s - %d knig\n ", i, sp[i].nazv_sp, sp[i].kol_vo);} imax=0; { for (i=1; i<n; i++) if (sp[i].kol_vo>sp[imax].kol_vo) { sp[imax].kol_vo=sp[i].kol_vo; imax=i;} } printf ("Maximalinaya spetsialinosti: spetsialinosti nr.%d - %s - %d knig\n", imax,sp[imax].nazv_sp, sp[imax].kol_vo); printf("zavershenie raboti \n"); fclose(fk); free(sp); getch(); return 0; } |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 19.12.2012
Сообщений: 2
|
![]()
Подозреваю, что ошибка в фрагменте:
else { while ( !feof(stdin)) { for (i=0; i<n; i++ ) { if (sp[i].nazv_sp==katalog.spetsialinosti) sp[i].kol_vo=sp[i].kol_vo+1; else printf("drug spets!!!\n"); } } } Подскажите, пжлт, как ее исправить... |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]()
0) Код оформляется тегом форума CODE.
1) Что, по Вашему мнению, должен делать каждый из участков кода? Обратите внимание, что после открытия файла на чтение Вы не обращаетесь к нему до момента закрытия. Вероятно, это ошибка, но, не имея представления о том, что Вы хотите сделать, не представляется возможным утверждать это с уверенностью, а уж тем более - исправлять её. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблема с динамическим массивом | Noob(c++) | Общие вопросы C/C++ | 56 | 02.08.2012 23:09 |
Проблема с динамическим массивом | zumm | Общие вопросы Delphi | 3 | 09.07.2010 20:20 |
Управление динамическим массивом | abr_question | Общие вопросы C/C++ | 12 | 18.12.2009 22:01 |
Создание функции для работы с динамическим массивом | papoose | Помощь студентам | 2 | 19.01.2009 16:55 |
проблема с динамическим массивом | kommunist | Помощь студентам | 6 | 11.11.2007 21:18 |