Код не компилируется - C (СИ) (149570)
Формулировка задачи:
В чем ошибка? Не хочет запускаться. Среда Pelles C.
#include <stdio.h> #include <locale.h> #include <stdlib.h> struct student//структура { // Фамилия char fam[15]; // Имя char im[15]; // Отчество char otch[15]; // Номер зачетной книжки unsigned short int nomzach; // Дата рождения char datrozh[10]; }; struct student *mas; int n=0; FILE *f; // Номер зачетной книжки unsigned int nomzach; // Фамилия char fam[15]; // Имя char im[15]; // Отчество char otch[15]; // Дата рождения char datrozh[10]; void insertMas(int i) { printf("-----------------------\n"); getchar(); printf("Фамилия: "); gets(fam); printf("Имя: "); gets(im); printf("Отчество: "); gets(otch); printf("Номер зачетной книжки: "); scanf("%06d",&nomzach); getchar(); printf("Дата рождения: "); gets(datRozh); strcpy(mas[i].fam,fam); strcpy(mas[i].im,im); strcpy(mas[i].otch,otch); mas[i].nomzach=nomzach; strcpy(mas[i].datrozh,datrozh); } void addMas()//добавление { _clrscr(); mas = (struct student *) realloc(mas, n * sizeof(struct student)); insertMas(n-1); printf("Данные успешно добавлены..."); _getch(); } void showMas(int i)//вывод 1 записи { printf("№%d Фамилия %s Имя %s Отчество %s Номер зачетной книжки %06d Дата рождения %s\n", i+1, mas[i].fam, mas[i].im, mas[i].otch, mas[i].nomZach, mas[i].datrozh); } void showAllMas()//вывод всего масива { _clrscr(); for (int i=0; i<n; i++) showMas(i); printf("Продолжить..."); _getch(); } void saveMas(char *name)//сохранение { if ((f=fopen(name, "w"))==0) printf("Ошибка создания файла!\n"); else { f=fopen(name, "r+"); for (int i=0;i<n;i++) fwrite(&mas[i], sizeof(struct student), 1, f); fclose(f); printf("Данные успешно сохранены..."); _getch(); } } void loadMas(char *name)//загрузить { n=0; if ((f = fopen(name, "r+")) == 0) printf("Файл не найден!"); else while (!feof(f)) { mas = (struct student *) realloc(mas, ++n * sizeof(struct student)); fread(&mas[n-1], sizeof(struct student), 1, f); } n--; fclose(f); printf("Данные успешно загружены..."); _getch(); } void editMas()//редактирование { _clrscr(); unsigned int nomzach; printf("Введите номер зачетной книжки: "); scanf("%d", &nomzach); for (int i=0;i<n;i++) if (mas[i].nomzach==nomzach) insertMas(i); printf("Данные успешно изменены..."); _getch(); } void deleteMas()//удаление из массива { int del; _clrscr(); showAllMas(); printf("Номер удаляемой записи: "); scanf("%d",&del); del--; for (int i=del;i<n-1;i++) { strcpy(mas[i].fam,mas[i+1].fam); strcpy(mas[i].im,mas[i+1].im); strcpy(mas[i].otch,mas[i+1].otch); mas[i].nomzach=mas[i+1].nomzach; strcpy(mas[i].datrozh,mas[i+1].datrozh); } n--; mas = (struct student *) realloc(mas, n * sizeof(struct student)); printf("Элемент удалён..."); _getch(); } void obmenMas(int i)//обмен элементов { strcpy(fam,mas[i].fam); strcpy(im,mas[i].im); strcpy(otch,mas[i].otch); nomzach=mas[i].nomzach; strcpy(datrozh,mas[i].datrozh); strcpy(mas[i].fam,mas[i+1].fam); strcpy(mas[i].im,mas[i+1].im); strcpy(mas[i].otch,mas[i+1].otch); mas[i].nomzach=mas[i+1].nomzach; strcpy(mas[i].datrozh,mas[i+1].datrozh); strcpy(mas[i+1].fam,fam); strcpy(mas[i+1].im,im); strcpy(mas[i+1].otch,otch); mas[i+1].nomzach=nomzach; strcpy(mas[i+1].datrozh,datRrozh); } void sort2()//сортировка по убыванию { for (int j=0; j<n; j++) for (int i=0; i<n-1; i++) if (mas[i].nomzach < mas[i+1].nomzach) obmenMas(i); printf("Сортировка завершена..."); _getch(); } void sort1()//сортировка по возрастанию { for (int j=0; j<n; j++) for (int i=0; i<n-1; i++) if (mas[i].nomzach > mas[i+1].nomzach) obmenMas(i); printf("Сортировка завершена..."); _getch(); } void sortMas()//выбор сортировки { _clrscr(); int key; printf("1 - по возрастанию\n"); printf("2 - по убыванию\n"); printf("Ввод: "); scanf("%d", &key); switch (key) { case 1: { sort1(); break;} case 2: { sort2(); break;} } } void findFam()//поиск по фамилии { _clrscr(); char fam[15]; printf("Фамилия: "); scanf("%s", &fam); for (int i=0; i<n; i++) if (strcmp(mas[i].fam, fam)==0) showMas(i); printf("Продолжить..."); _getch(); } void findIm()//поиск по имени { _clrscr(); char im[15]; printf("Фамилия: "); scanf("%s", &im); for (int i=0; i<n; i++) if (strcmp(mas[i].im, im)==0) showMas(i); printf("Продолжить..."); _getch(); } void findOtch()//поиск по отчеству { _clrscr(); char otch[15]; printf("Отчество: "); scanf("%s", &otch); for (int i=0; i<n; i++) if (strcmp(mas[i].otch, otch)==0) showMas(i); printf("Продолжить..."); _getch(); } void findNomZach()//поиск по зачетки { _clrscr(); int nomzach; printf("Номер зачетной книжки: "); scanf("%d", &nomzach); for (int i=0; i<n; i++) if (mas[i].nomzach==nomzach) showMas(i); printf("Продолжить..."); _getch(); } void findDatRozh()//поиск по дате рождения { _clrscr(); char datrozh[10]; printf("Дата рождения: "); scanf("%s", &datrozh); for (int i=0; i<n; i++) if (strcmp(mas[i].datrozh, datrozh)==0) showMas(i); printf("Продолжить..."); _getch(); } void findMas()//поиск { _clrscr(); int key; printf("1 - поиск по Фамилии\n"); printf("2 - поиск по Имени\n"); printf("3 - поиск по Отчеству\n"); printf("4 - поиск по Номер зачетки\n"); printf("5 - поиск по Дате рождения\n"); printf("Ввод: "); scanf("%d", &key); switch (key) { case 1: {findFam();break;} case 2: {findIm();break;} case 3: {findOtch();break;} case 4: {findNomZach();break;} case 5: {findDatRozh();break;} } } void filterFam()// Фильтрация по Фамилии { _clrscr(); char fam[15]; printf("Фильтр Фамилии: "); scanf("%s", &fam); for (int i=0; i<n; i++) if (strspn(mas[i].fam, fam)>0) showMas(i); printf("Продолжить..."); _getch(); } void filterIm()// Фильтрация по Имени { _clrscr(); char im[15]; printf("Фильтр Имени: "); scanf("%s", &im); for (int i=0; i<n; i++) if (strspn(mas[i].im, im)>0) showMas(i); printf("Продолжить..."); _getch(); } void filterOtch()// Фильтрация по Отчеству { _clrscr(); char otch[15]; printf("Фильтр отчества: "); scanf("%s", &otch); for (int i=0; i<n; i++) if (strspn(mas[i].otch, otch)>0) showMas(i); printf("Продолжить..."); _getch(); } void filterNomZach()// фильтр по номеру зачетки { _clrscr(); char nomzach[5]; printf("Фильтр номера зачетки: "); scanf("%s", &nomzach); char temp[11]; for (int i=0; i<n; i++) { sprintf(temp, "%d", mas[i].nomzach); if (strspn(temp, nomzach)>0) showMas(i); } printf("Продолжить..."); _getch(); } void filterDatRozh()// Фильтрация по дате рождения { _clrscr(); char datrozh[10]; printf("Фильтр даты рождения: "); scanf("%s", &datrozh); for (int i=0; i<n; i++) if (strspn(mas[i].datrozh, datrozh)>0) showMas(i); printf("Продолжить..."); _getch(); } void filterMas()// фильтрация { _clrscr(); int key; printf("1 - фильтр по фамилии\n"); printf("2 - фильтр по имени\n"); printf("3 - фильтр по отчеству\n"); printf("4 - фильтр по номеру зачетки\n"); printf("5 - фильтр подате рожденич\n"); printf("Ввод: "); scanf("%d", &key); switch (key) { case 1: {filterFam();break;} case 2: {filterIm();break;} case 3: {filterOtch();break;} case 4: {filterNomZach();break;} case 5: {filterDatRozh();break;} } } int main(int argc, char *argv[]) { setlocale(LC_ALL,""); int key; char *name = "baza.txt"; do { _clrscr(); printf("1 - Добавить\n"); printf("2 - Показать\n"); printf("3 - Сохранить\n"); printf("4 - Загрузить\n"); printf("5 - Сортировака\n"); printf("6 - Редактировать\n"); printf("7 - Удаление\n"); printf("8 - Поиск\n"); printf("9 - Фильтрация\n"); printf("0 - Выход\n"); printf("Ввод: "); scanf("%d", &key); switch (key) { case 1: { addMas(++n); break;} case 2: { showAllMas(); break;} case 3: { saveMas(name); break;} case 4: { loadMas(name); break;} case 5: { sortMas(); break;} case 6: { editMas(); break;} case 7: { deleteMas(); break;} case 8: { findMas(); break;} case 9: {filterMas(); break;} } } while (key!=0); return 0; }[OBJC][/OBJC]
Решение задачи: «Код не компилируется»
textual
Листинг программы
Building main.obj. main.c(27): warning #2018: Undeclared function 'gets' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(30): warning #2018: Undeclared function 'strcpy' (did you mean 'strtof'?); assuming 'extern' returning 'int'. main.c(35): warning #2117: Old-style function definition for 'addMas'. main.c(36): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(39): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(49): warning #2117: Old-style function definition for 'showAllMas'. main.c(50): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(53): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(66): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(83): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(87): warning #2117: Old-style function definition for 'editMas'. main.c(88): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(93): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(97): warning #2117: Old-style function definition for 'deleteMas'. main.c(99): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(107): warning #2018: Undeclared function 'strcpy' (did you mean 'strtof'?); assuming 'extern' returning 'int'. main.c(111): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(118): warning #2018: Undeclared function 'strcpy' (did you mean 'strtof'?); assuming 'extern' returning 'int'. main.c(128): warning #2117: Old-style function definition for 'sort2'. main.c(133): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(137): warning #2117: Old-style function definition for 'sort1'. main.c(142): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(146): warning #2117: Old-style function definition for 'sortMas'. main.c(147): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(159): warning #2117: Old-style function definition for 'findflightNumber'. main.c(160): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(165): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(169): warning #2117: Old-style function definition for 'findDate'. main.c(170): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(172): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'char *' but found 'char (*)[17]'. main.c(174): warning #2018: Undeclared function 'strcmp' (did you mean 'strtof'?); assuming 'extern' returning 'int'. main.c(176): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(180): warning #2117: Old-style function definition for 'findPlaceNumber'. main.c(181): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(186): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(190): warning #2117: Old-style function definition for 'findMas'. main.c(191): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(205): warning #2117: Old-style function definition for 'filterDate'. main.c(206): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(208): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'char *' but found 'char (*)[17]'. main.c(210): warning #2018: Undeclared function 'strspn' (did you mean 'strtof'?); assuming 'extern' returning 'int'. main.c(212): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(216): warning #2117: Old-style function definition for 'filterPlaceNumber'. main.c(217): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(219): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'char *' but found 'char (*)[5]'. main.c(224): warning #2018: Undeclared function 'strspn' (did you mean 'strtof'?); assuming 'extern' returning 'int'. main.c(227): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(231): warning #2117: Old-style function definition for 'filterFlightNumber'. main.c(232): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(234): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'char *' but found 'char (*)[5]'. main.c(239): warning #2018: Undeclared function 'strspn' (did you mean 'strtof'?); assuming 'extern' returning 'int'. main.c(242): warning #2018: Undeclared function '_getch' (did you mean 'getc'?); assuming 'extern' returning 'int'. main.c(246): warning #2117: Old-style function definition for 'filterMas'. main.c(247): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. main.c(266): warning #2018: Undeclared function '_clrscr' (did you mean '_lrotr'?); assuming 'extern' returning 'int'. Done.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д