Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2007, 17:02   #1
KJIOyH
Пользователь
 
Регистрация: 22.09.2007
Сообщений: 15
По умолчанию "No error"

Доброго времени суток. Подобную тему я уже создавал в разделе помощь студентам,ответа не получил. Из раздела помощь студентам тему прошу закрыть или удалить.
Перейдем к делу.
Задача:
Анализатор формул,/ * - + ( ).
Нужно прочитать из файла,параллельно разбирая .Как только прочитаем = заканчиваем анализ. После этого полученный ответ записываем в тот же файл.
Проблема: Со знаками / * - + все работает,как только добавляю скобку-выдает ошибку "No error". Если есть у кого идеи,прошу писать их сюда !
Код программы:
Цитата:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


double calc(char op)
{
double a,b,c=0.0;
char op1='+', op2, op3,q;
FILE *fp;

while(op1!=op)
{
if((fp=fopen("d:\\test.txt","a"))== NULL)
{
perror("d:\\test.txt");
return 1;
}
else
{
if(fscanf(fp,"%lg %c",&a, &op2)!=2 && (q=fgetc(fp))=='(')
{ a=calc(')'); fscanf(fp," %c",&op2); }
while(op2=='*' || op2=='/')
{
if(fscanf(fp,"%lg %c",&b, &op3)!=2 && (q=fgetc(fp))=='(')
{ b=calc(')'); fscanf(fp," %c",&op3); }
if(op2=='*')a*=b;
else if(op2=='/')a/=b;
op2=op3;
}
if(op1=='+')c+=a;
else if(op1=='-')c-=a;
op1=op2;
}

}
fclose(fp);
return c;
}
int main()
{

FILE *fpe;

if((fpe=fopen("d:\\test.txt","a"))= =NULL)
{
perror("d:\\test.txt");
return 1;
}
fprintf(fpe,"%lg\n",calc('='));
fclose(fpe);

return 0;
}
KJIOyH вне форума Ответить с цитированием
Старый 21.11.2007, 18:55   #2
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

код не разбирал, но у меня компилится (с ворнингами)
Alek86 вне форума Ответить с цитированием
Старый 21.11.2007, 20:08   #3
KJIOyH
Пользователь
 
Регистрация: 22.09.2007
Сообщений: 15
По умолчанию

Странно,у меня без. скинь варнинги !
KJIOyH вне форума Ответить с цитированием
Старый 25.11.2007, 15:36   #4
KJIOyH
Пользователь
 
Регистрация: 22.09.2007
Сообщений: 15
По умолчанию

Народ все варианты пишем!
KJIOyH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
ОШИБКА:"error BGI graphics not ..." Panterka Помощь студентам 7 12.12.2007 17:06
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49
На чем пишутся стратегии типа "Казаков" и "Эпохи империи" Tayfun Свободное общение 3 26.06.2007 20:27