| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Пмогите пожалуйста устранить ошибки в порграммео |
| Автор: kirkakirya 4.7.2009, 06:54 |
| Вообще, задача звучит так: Строка содержит арифметическое выражение, состоящее из целых чисел и знаков операций: -,+*,/. Проверить корректность выражения (в смысле последовательности чисел и знаков операций) Когда я запускаю задачу, то почему-то введенные мной символы выводятся в виде псевдографики, не так как надо. К тому же Ввод почему-то "затягивается", т.е. на ввод запрашивается не 20 символов, как я просил, а больше. в чем бело, посмотрите пож-та! #include <stdio.h> #include <stdlib.h> #include <conio.h> void main (void) { clrscr(); char A[20],z,s,sym[]={'+','-','*','/'}, i,j, a='0'; int symb=0,cif=0; printf ("Введите выражение\n"); do { z=getch(); for (i='0';i<='9';i++) { if (i==z) cif=1; } for (j=0;j<4;j++) { if (z==sym[j]) symb=1; } if (cif==1 || symb==1) { A[a]=z; a++; } // если введенный символ есть цифра либо знак операции, то добавляем его в массив. } }while(a<20||z!=13); Нужно сделать так, чтобы текущий и предыдущий символы не являлись знаками операций. Помогите пож-та додумать. Я пробовал вывести просто этот массив, но он выодит мне какие-то "каракули" |
| Автор: andrew_121 4.7.2009, 08:34 |
Зачем читать посимвольно? Читай всю строку разом. Ты не правильным путем пошел. Начинай сначала. |
| Автор: kirkakirya 4.7.2009, 08:54 |
| то есть прочитать всю строку, а потом проверять? |
| Автор: andrew_121 4.7.2009, 09:03 |
| kirkakirya, Да. Лучше пиши на С++. Проще. Кода меньше. |
| Автор: kirkakirya 4.7.2009, 11:38 |
| Но мы проходим только С в универе пока что... |
| Автор: andrew_121 4.7.2009, 12:00 |
| kirkakirya, Значит на С. Вопросы? |