ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Double dlina,shirina;}; Struct trap { Double visota,osnavanie; }; Struct FIGURA { char name[15]; Double ploshad; Prm f1; Trap f2; }; void vvod(FIGURA *); void pl(FIGURA *,int); void vivod(FIGURA *,int); Void main() { const int n=10; FIGURA ob[n]; Int i; for(i=0;i<n;i++) { printf("VVrdite dannie %d fuguri\n",i+1); vvod(&ob[i]); } pl(&ob[0],n); vivod(&ob[0],n); } void vivod(FIGURA *f,int k) { puts(""); for(int i=0;i<k;i++) { printf("%s - %.1lf\n",(f+i)->name,(f+i)->ploshad); } } void pl(FIGURA *f,int k) { for(int i=0;i<k;i++) { if(!strcmp((f+i)->name,"PRYAMOUGOLNIK")) (f+i)->ploshad=(f+i)->f1.dlina*(f+i)->f1.shirina; Else (f+i)->ploshad=(f+i)->f2.osnavanie*(f+i)->f2.visota; } } void vvod(FIGURA *f) { char ch[3]; printf("Введите имя фигуры:pr–если ПРЯМОУГОЛЬНИК, и tr-если ТРАПЕЦИЯ:"); scanf("%s",ch); if(!strcmp(ch,"pr")) { strcpy(f->name,"PRYAMOUGOLNIK"); printf("DLINA: "); scanf("%lf",&(f->f1.dlina)); printf("SHIRINA: "); scanf("%lf",&(f->f1.shirina)); } Else { strcpy(f->name,"TROPECIYA"); printf("VISOTA: "); scanf("%lf",&(f->f2.visota)); printf("OSNOVANIE: "); scanf("%lf",&(f->f2.osnavanie)); } } 7. Создать массив структур. Элементами структуры являются: фамилия автора книги и ее наименование. Написать функции 1) добавления данных; 2) удаления указанного автора; 3) вывод данных. #include<stdio.h> #include<string.h> Struct book { char fam[30]; char naz[10]; }; void mas_str(book*,book,int*); void delet(book*,char *,int *); void show_str(book*); Void main() { book katal[10],bk; int i,kol=0,pr; char fio[30]; printf("Enter:\n1 - DOBAVLENUE\n2 - Prosmotr\n3 - UDALENIE\n4 - exit\n"); While(1) { puts("pr-?"); scanf("%d",&pr); Switch(pr) { case 1: Do { Fflush(stdin); printf("FAM: "); Gets(bk.fam); if(strcmp(bk.fam,"")) { printf("KNIGA: "); Gets(bk.naz); mas_str(katal,bk,&kol); } }while(strcmp(bk.fam,"")); Break; case 2: If(kol) for(i=0;i<kol;i++) puts(katal[i].fam); Else puts("PUST!!!!"); Break; case 3: puts("FAM UDALENIE:"); Fflush(stdin); Gets(fio); If(kol) delet(katal,fio,&kol); Else puts("PUST VVV!!!"); Break; case 4: Return; } } } void mas_str(book* katal,book bk,int*kol) { int i=*kol; while((*kol)<10 && i<(*kol) && strcmp(katal[i].fam,"") && (!strcmp(katal[i].fam,bk.fam)) && strcmp(katal[i].naz,bk.naz)) i++; katal[i]=bk; (*kol)++; } void delet(book* katal,char *fio,int *kol) { int i=-1,k=*kol; if(*kol) { while(i++,i<k) if(!strcmp(katal[i].fam,fio))break; if(!strcmp(katal[i].fam,fio)) { if(i==k) { *kol=0;return; } if(i<k) { while(++i,i<*kol) katal[i-1]=katal[i]; (*kol)--; } Else printf("NET!!!\n"); } } } Ключевое слово typdef предоставляет программисту механизм для создании синонимов (или псевдокодов) для ранее определенного типа. Объявление нового имени с помощью typedef не создает нового типа, а создает лишь имя, являющееся синонимом для определенного ранее типа. Не нашли, что искали? Воспользуйтесь поиском:
|