Исправить ошибку в коде - C (СИ) (69747)
Формулировка задачи:
задача
Удалить спортсмена из наименьшим количеством очков.
КОД:
Работаю в визуалке 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
Помогите пожалуйста.
Листинг программы
- #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);
- }
Решение задачи: «Исправить ошибку в коде»
textual
Листинг программы
- s = (struct sport *)malloc(n*sizeof(sp));
Объяснение кода листинга программы
s
- это переменная, которая будет использоваться для хранения указателя на структуруsp
.n
- это переменная, которая содержит количество структур, которые нужно выделить в памяти.sp
- это структура данных, которую нужно выделить в памяти.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.sp
- это структура данных, которая содержит поля, такие какname
иvalue
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д