Исправить ошибку в коде - C (СИ) (69747)

Узнай цену своей работы

Формулировка задачи:

задача Удалить спортсмена из наименьшим количеством очков. КОД:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
struct sport { char name[10]; int number; int kol; } sp;
void input(FILE *); // создание нового файла 
void print(FILE *); // просмотр файла 
void app(FILE *); // добавление в файл
void del(FILE *); // удаление игрока с наименьшим количеством очков
int main(void)
{
    char c;
    FILE *fp; 
    while (1)
    {
 
        puts(" 1 – новый файл");
        puts(" 2 – просмотр файла");
        puts(" 3 – добавление в файл");
        puts(" 4 – удаление игрока с наименьшим количеством очков");
        puts(" 0 - выход");
        c = getchar();
        switch (c)
        {
        case '1':input(fp); break;// [B]вот тут ошибка[/B]
        case '2':print(fp); break;
        case '3':app(fp); break;
        case '4':del(fp); break;
        case '0':return 0;
        default: puts("неверный режим");
        }
    }
}
void input(FILE *fp)
{
    char ch;
    fp = fopen("file1.dat", "wb"); // открытие бинарного файла для записи
 
    printf("\n Введите информацию о спортсменах \n");
    do
    {
        printf("\n Фамилия: "); scanf("%s", sp.name);
        printf(" Номер: "); scanf("%d", &sp.number);
        printf(" Количество очков: "); scanf("%d", &sp.kol);
        fwrite(&sp, sizeof(sp), 1, fp); // запись в файл одной структуры sp
        printf("\n Закончить?  y/n  ");
        ch = getchar();
    } while (ch != 'y');
    fclose(fp);
}
void print(FILE *fp)
{
    int i;
 
    fp = fopen("file1.dat", "rb"); // открытие бинарного файла для чтения
    i = 1;
    fread(&sp, sizeof(sp), 1, fp); // чтение из файла одной структуры sp
    while (!feof(fp))
    {
        printf("\n  %3d спортсмен %-10s номер %d   очков %d", i, sp.name, sp.number, sp.kol);
        fread(&sp, sizeof(sp), 1, fp);
        i++;
    }
    getchar();
}
void app(FILE *fp)
{
    char ch;
    fp = fopen("file1.dat", "ab"); // открытие бинарного файла для добавления
 
    printf("\n  Введите информацию о спортсменах \n");
    do
    {
        printf("\n Фамилия: "); scanf("%s", sp.name);
        printf(" Номер: "); scanf("%d", &sp.number);
        printf(" Количество очков: "); scanf("%d", &sp.kol);
        fwrite(&sp, sizeof(sp), 1, fp);
        printf("Закончить?  y/n  ");
        ch = getchar();
    } while (ch != 'y');
    fclose(fp);
}
void del(FILE *fp)
{
    char ch; // [B]ВОТ ТУТ ОШИБКА[/B]
    int i, j, n, h;
    sport *s, p;
 
    fp = fopen("file1.dat", "rb"); // открытие бинарного файла для чтения
    // подсчет числа записей в файле
    n = 0;
    fseek(fp, 0, 2);
    n = ftell(fp) / sizeof(sport);
    rewind(fp);
    s = (sport *)malloc(n*sizeof(sp));
    // заполнение массива
    for (i = 0, h = 1; i<n; ++i)
    {
        fread(&sp, sizeof(sp), 1, fp);
        s[i] = sp;
        printf("\n %3d спортсмен %-10s номер %d   очков %d", h, sp.name, sp.number, sp.kol);
        h++;
    }
    fclose(fp);
    fp = fopen("file1.dat", "wb"); // открытие бинарного файла для записи
    j = 1;
    while (j)
    {
        j = 0;
        for (i = 0; i<n - 1; i++)
        {
            if (s[i].kol<s[i + 1].kol)
            {
                p = s[i];
                s[i] = s[i + 1];
                s[i + 1] = p;
                j = 1;
            }
        }
    }
    for (i = 0; i<n - 1; ++i)
        fwrite(&s[i], sizeof(sp), 1, fp);
    printf("\n\n   Спортсмен с наименьшим количеством очков: %5s (%d) удален. ", s[n - 1].name, s[n - 1].kol);
    getchar();
    free(s); // Освобождение выделенной по адресу s памяти
    fclose(fp);
}
Работаю в визуалке 2013 Ошибки : Warning 1 warning C4101: 'ch' : unreferenced local variable d:\ 86 1 ConsoleApplication4 Error 2 error C4700: uninitialized local variable 'fp' used d:\source.cpp 26 1 ConsoleApplication4 Помогите пожалуйста.

Решение задачи: «Исправить ошибку в коде»

textual
Листинг программы
s = (struct sport *)malloc(n*sizeof(sp));

Объяснение кода листинга программы

  1. s - это переменная, которая будет использоваться для хранения указателя на структуру sp.
  2. n - это переменная, которая содержит количество структур, которые нужно выделить в памяти.
  3. sp - это структура данных, которую нужно выделить в памяти.
  4. sp - это структура данных, которая содержит поля, такие как name и value.
  5. sp - это структура данных, которая содержит поля, такие как name и value.
  6. sp - это структура данных, которая содержит поля, такие как name и value.
  7. sp - это структура данных, которая содержит поля, такие как name и value.
  8. sp - это структура данных, которая содержит поля, такие как name и value.
  9. sp - это структура данных, которая содержит поля, такие как name и value.
  10. sp - это структура данных, которая содержит поля, такие как name и value.
  11. sp - это структура данных, которая содержит поля, такие как name и value.
  12. sp - это структура данных, которая содержит поля, такие как name и value.
  13. sp - это структура данных, которая содержит поля, такие как name и value.
  14. sp - это структура данных, которая содержит поля, такие как name и value.
  15. sp - это структура данных, которая содержит поля, такие как name и value.
  16. sp - это структура данных, которая содержит поля, такие как name и value.
  17. sp - это структура данных, которая содержит поля, такие как name и value.
  18. sp - это структура данных, которая содержит поля, такие как name и value.
  19. sp - это структура данных, которая содержит поля, такие как name и value.
  20. sp - это структура данных, которая содержит поля, такие как name и value.

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


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

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

8   голосов , оценка 4 из 5