|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.05.2020, 09:15 | #1 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Односвязный линейный список студентов. Как исправить ошибку?
Здравствуйте.
Нужно создать программу, в которой будет создаваться односвязный линейный список студентов. И нужно сделать возможность изменения имени заданного студента. При компиляции, выходят ошибки: Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка (активно) E0137 выражение должно быть допустимым для изменения левосторонним значением Student Work C:\Users\John\source\repos\Stu dent Work\Student Work\main.c 87 Ошибка (активно) E1072 объявлению не может быть назначена метка Student Work C:\Users\John\source\repos\Stu dent Work\Student Work\main.c 111 Ошибка C2106 =: левый операнд должен быть левосторонним значением Student Work C:\Users\John\source\repos\Stu dent Work\Student Work\main.c 87 Как можно исправить эти ошибки? И дополнительно, посоветуйте, как я могу улучшить мой код? Может, что-то можно написать проще, лучше или эффективнее? Код main.c: Код:
|
28.05.2020, 09:16 | #2 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Как я понял, здесь ошибка в:
Код:
|
28.05.2020, 10:27 | #3 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
jonikster,
Код:
|
28.05.2020, 10:29 | #4 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
да, перейти с C на C++ портянка будет раз в 10 меньше
|
28.05.2020, 10:39 | #5 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Если я бы мог перейти с C на C++, давно перешел бы. Но увы. Конкретно эту задачу просят на C.
|
28.05.2020, 10:48 | #6 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
В итоге, у меня после ввода номера студента и нового имени, программа зависает. Даже не пишет, что изменение было произведено.
Код:
|
28.05.2020, 10:52 | #7 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
|
28.05.2020, 10:54 | #8 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Я попробовал сделать так:
Код:
|
28.05.2020, 10:59 | #9 |
фрилансер
Участник клуба
Регистрация: 11.10.2019
Сообщений: 1,010
|
в данном случае хуже - у тебя нет гарантии, что строки z-терминированы
вряд ли на "зависание" влияет это копирование, ошибка где-то в другом месте. С помощью отладчика это можно выяснить чисто визуально вот тут косяк void ChangeStudentName(int n, char name[KOL], struct Student* student) { struct Student* changingStudent = student; while (changingStudent) // это условие будет всегда выполняться, если указатель не нулевой { .... } } Последний раз редактировалось Алексей1153; 28.05.2020 в 11:01. |
28.05.2020, 11:04 | #10 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Мне нужно, чтобы цикл шел по массиву, пока не найдет заданный номер студента. Разве это не вариант? Как тогда я могу пройтись по массиву?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Линейный односвязный список на Си | Enni | Помощь студентам | 24 | 28.03.2016 18:11 |
Односвязный линейный список | flecso | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 13.05.2012 02:51 |
С++ линейный односвязный список | Lady IcE | Помощь студентам | 3 | 25.04.2011 20:24 |
Линейный-односвязный список | Айдар | Помощь студентам | 1 | 01.06.2010 10:20 |
линейный односвязный список на С - что это?? о_О | aka_Kiss | Помощь студентам | 8 | 22.12.2009 01:39 |