Код не компилируется - 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5