Madf писал(а):Собственно вот:
1.c
Собственно там ничего не сделано. На лицо полное непонимание отступов и скобочек.
Кста, непонятно, ведь всякие IDE сами умеют форматировать сишный код? Ну вот я в редакторе Geany печатаю открыв. скобку, редактор сам делает отступ, потом правильно откорректирует отступ при закрыв. скобке.
Отступы нужны для понимания уровня вложения алгоритма. Скобка в начале строки - начальный уровень (нулевой) любой функции. Следующие отступы - уровень вложения алгоритма. Я отформатировал код до 150 строки, теперь это можно читать. У тебя есть программа сравнения файлов? Под чем ты работаешь, венды? В вендах есть хорошая сравнивалка, кажись merg. Сравни свой последний файл и мой. Только сначала будет сложно сравнивать, т.к. я весь твой текст обработал командой "удалить все лишние пробелы в конце строк".
Ну так вот, до 150 строки я отформатировал текст. Только в этом месте готов искать ошибки. Сразу бросается в глаза:
- Код: Выделить всё • Развернуть
switch (p1)
{
case 0: i0;
case 1: i1;
case 2: i2;
case 3: i3;
case 4: i4;
case 5: i5;
case 6: i6;
case 7: i7;
case 8: i8;
case 9: i9;
break;
};
Почему у тебя "case" без break? После "case 0: i0;" Выполнится следующий "case 1: i1;" и так далее по цепочке. Не так ли ты хотел сделать?
- Код: Выделить всё • Развернуть
switch (p1)
{
case 0: i0;
break;
case 1: i1;
break;
case 2: i2;
break;
case 3: i3;
break;
case 4: i4;
break;
case 5: i5;
break;
case 6: i6;
break;
case 7: i7;
break;
case 8: i8;
break;
case 9: i9;
break;
};
Больше о switch по ссылкам из поисковика:
http://easy-code.ru/lesson/switch-case-cpp
Далее, вот этот goto "goto m0;" в "void indicating(unsigned char p0)". Я не против goto вообще, я их даже лублу, но ты уверен что не запутался в алгоритме? Последний "if (ind==3)" тоже выполнит код по метке m0:. Хотя, наверно, так и задумано. Но ведь ты мог все эти "if (ind==х)" заменить на case и избавиться от goto, не?
Мои правки, сравнивай