panduz
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Люди памагите. Нужно создать программу на С, содержащую структуру, состоящую из 4 полей (типы данных: строка из 40 символов (наименование транзистора), int (мощность транзистора в мВт), int (вес транзистора), float (цена транзистора) cоответственно). Объявить массив структур из 10 элементов. В программе должно быть реализовано числовое меню, позволяющее осуществлять ввод данных о любом количестве транзисторов (от 1 до 10), вывод количества введенных записей, вывод всех введенных данных в виде отформатированной таблицы, вывод определенной записи о транзисторе по ее порядковому номеру в базе и выход из программы Я тут набрасал кое-чего но хер что-то пашет...может падсабите? #include <stdio.h> #include<ctype.h> struct trans{ char name[40]; int power, ves; float price; }; void vvod( struct trans a[],int count){ char c='y'; int i; while((count<10)&&(c=='y')){ count++; printf("Vvedite naimenovanie %d tranzistora:\n",count); while (getchar()!='\n') continue; scanf("%s",a[count].name); printf("Vvedite moschnost %d tranzistora:\n",count); while (getchar()!='\n') continue; scanf("%d",&a[count].power); printf("Vvedite ves %d tranzistora:\n",count); while (getchar()!='\n') continue; scanf("%d",&a[count].ves); printf("Vvedite ceny %d tranzistora:\n",count); while (getchar()!='\n') continue; scanf("%f",&a[count].price); printf("Hotite vvesti esche dannie[y/n]?\n"); while (getchar()!='\n') continue; scanf("%c",&c); if (c=='y')continue; if (c=='n') break; } } void v_kol(int kol){ printf("Kolichestvo vvedennih zapicej: %d",kol); }; void v_tab(struct trans b[], int kol){ int i; printf("-------------------------------------------------\n"); printf("| N | Naimenovanie | Moschnost | Ves | Cena |\n"); printf("|-----------------------------------------------|\n"); for (i=1; i<=kol; i++) printf("|%3d|%14s|%11d|%5d|%8.2f|\n", i, b[i].name, b[i].power, b[i].ves, b[i].price); printf("|-----------------------------------------------|\n"); }; void v_elem(struct trans b[]) { int k; printf("Vvedite nomer zapici tranzistora:"); scanf("%d",&k); printf("-------------------------------------------------\n"); printf("| N | Naimenovanie | Moschnost | Ves | Cena |\n"); printf("|%3d|%14s|%11d|%5d|%8.2f|\n", k, b[k-1].name, b[k-1].power, b[k-1].ves, b[k-1].price); printf("|-----------------------------------------------|\n"); }; int main(){ struct trans a[10]; int x, count=0; for(;;){ printf("Viberite pynkt menu:\n"); printf("[ 1 - vvod dannih ]\n" "[ 2 - vivod kol-va zapicej ]\n" "[ 3 - vivod tablici ]\n" "[ 4 - vivod opredelennoj zapici]\n" "[ 5 - vixod iz programmi ]\n"); scanf("%d",&x); switch(x){ case 1: vvod(a,count); break; case 2: v_kol(count); break; case 3: v_tab(a,count); break; case 4: v_elem(a); break; case 5: return 0; default: printf("Error\n"); } } } |