Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: kirkakirya   (04.07.2009 в 07:29)
Вообще, задача звучит так:

Строка содержит арифметическое выражение, состоящее из целых чисел и знаков операций: -,+*,/.
Проверить корректность выражения (в смысле последовательности чисел и знаков операций)

Когда я запускаю задачу, то почему-то введенные мной символы выводятся в виде псевдографики, не так как надо. К тому же Ввод почему-то "затягивается", т.е. на ввод запрашивается не 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);


Нужно сделать так, чтобы текущий и предыдущий символы не являлись знаками операций. Помогите пож-та додумать. Я пробовал вывести просто этот массив, но он выодит мне какие-то "каракули"


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: