Svit14
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Есть структура со связанными списками: Код: .......................... struct oblast{ int kodreg; int kodobl; char nazobl[30]; struct oblast *daliobl; }; struct regiony { int kodreg; char nazreg[50]; struct regiony *daliregion; }; struct rodowe { int kodrodowe; char naznarodowe[30]; int kodobl_ua; char roztawuv_rodowe[50]; int kod_tupy_rodowe; int kod_rozm1; int kod_rozm2; int rik_vidkr; int rik_vved; struct rodowe *dalirod; }; struct rozm_rodowe { int kodrozm; char rozmiry[20]; struct rozm_rodowe *dalirozm; }; struct type_rodowe { int kodtype; char typerod[20]; struct type_rodowe *dalitype; }; int main(void) { SetConsoleCP(1251); SetConsoleOutputCP(1251); int i,s,b,kodvv; struct{int rik;char den;char mis;}data; struct data *adr_data=&data; struct oblast danoobl[6]={{ 1,1,"Чернівецька ",NULL}, { 1,2,"Івано-Франківська ",NULL}, { 1,3,"Закарпатська ",NULL}, { 2,4,"Полтавська ",NULL}, { 2,5,"Сумська ",NULL}, { 3,6,"Одеська ",NULL}, }; struct regiony danoreg[3]={{1,"Передкарпатська нафтогазоносна обл.",NULL}, {2,"Днiпровсько-Донецька нафтогазоносна обл.",NULL}, {3,"Причорноморсько-Кримська газонафтоносна впадина",NULL}, }; struct rodowe danorodowe[7]={{1,"Бiлицьке-Г",1,"ст. Бiлиця", 2,2,1,1949,1949,NULL}, {2,"Богородчанське-Г",2,"28 км на ПдС вiд м. Iвано-Фpанкiвськ", 1,0,1,1963,1979,NULL}, {3,"Солятинське-Г",3,"1 км на Пн вiд м. Солятин", 2,1,1,1982,1988,NULL}, {4,"Борисівське-НГК",1,"100 км на ПдЗ вiд м. Дpобот", 3,2,1,1954,1954,NULL}, {5,"Аркадівське-ГК",4,"35 км на С вiд м. Кобеляки", 4,0,2,1979,1981,NULL}, {6,"Андрiївське-ГК",5,"43 км на ПнЗ вiд м. Ромни", 2,3,2,1982,2002,NULL}, {7,"Ритнянське-Г",6,"10 км на Пд вiд м. Ритня", 2,2,1,1980,2004,NULL}, }; struct rozm_rodowe danorozm[3]={{1,"Дрібне",NULL}, {2,"Середнє",NULL}, {3,"Велике",NULL}, }; struct type_rodowe danotype[4]={{1,"Газове",NULL}, {2,"Нафтогазове",NULL}, {3,"Нафтогазоконденсатне",NULL}, {4,"Газоконденсатне",NULL}, }; ........................................ | Нужно написать функцию, которыя бы создавала такой отчет: отбирала только "Нефтегазовой" - тип месторождения, то есть kod_tupy_rodowe=2, и выводила местонахождения, название области, название месторождения и разницу в годах открытия Вот я написал: Код: ........ puts("Код Тип газопроводу"); for(i=0;i<4;i++)printf("%d %s\n",danotype[i].kodtype,danotype[i].typerod); puts("\n выберите из списка и введите код "); /*вводим 2*/ scanf("%d",&kodvv); /*Время*/ time_t rawtime; struct tm *timeinfo; time(&rawtime); timeinfo = localtime(&rawtime); printf("\nЗвіт.\n Разница в годах станом на: %s", asctime(timeinfo)); printf("Тип газопроводу %s\n",danotype[kodvv-1].typerod); printf("\n № п/п Регіон Область Родовище Розташування Різниця\n"); printf("---------------------------------------\n"); | Помогите с функцией. пробовал это, но не работает Код: for (currreg = headreg; currreg != NULL; currreg = currreg->daliregion) { s = 0; for (curtype = headtype; curtype != NULL; curtype = curtype->dalitype) if (currreg->kodreg == curtype->kodtype ) if (s) printf(" %d %s %d\n", ++i, currreg->nazreg, s); } |
|