Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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,  06:54 Найти цитируемый пост)
z=getch();

Зачем читать посимвольно? Читай всю строку разом.

Ты не правильным путем пошел. Начинай сначала.

Автор: 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, Значит на С.
Вопросы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)