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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 13:47   #1
alenka_ej
 
Регистрация: 08.05.2010
Сообщений: 5
По умолчанию Проблема с переводом из char в число

Здравствуйте.

Пишу программу для нахождения значения выражения с использованием обратной польской нотации. Все бы хорошо, но на этапе вычисления значения выражения не получается преобразовать char в число, уже чего только не пробовала.
Подскажите, с чем может быть связана проблема?
Заранее спасибо

Код:
#include <conio.h>
#include <stdio.h>
#include <alloc.h>
#include <stdlib.h>
struct stack
{
char c;
stack *next;
};
stack *push (stack *&deep, char c)
{
stack*newitem= new stack;
newitem->c=c;
newitem->next=deep;
deep=newitem;
return deep;
}

char pop(stack *&deep)
{
 stack *q;
 char a;
 if(deep==NULL) return '\0';
  else
 {
 q->c=deep->c;
 q->next=deep->next;
 a=q->c;
 deep=q->next;
  free(q);
 return a;
 }
}
  void main()
{
clrscr();
int s,i,j;
char c;
char a[250], outstr[250];
stack *operate=NULL;
stack *num=NULL;
printf("\nVvedite virazenie:");
fflush(stdin);
gets(a);
{
//преобразование выражения в ОПЗ и запись в масив outstr
}
  fflush(stdin);
 char k1,k2;
 int ch1, ch2;
 float resh;
 for(i=0; i<j;i++)
 if(outstr[i]=='0'||outstr[i]=='1'||outstr[i]=='2'||outstr[i]=='3'||outstr[i]=='4'||outstr[i]=='5'||outstr[i]=='6'||outstr[i]=='7'||outstr[i]=='8'||outstr[i]=='9')
 {
 push(num,outstr[i]);
 }
 else
 {
 k2=pop(num);
 k1=pop(num);
 ch1=(int)k1; // вот эти два значения переводятся, но неверно.
 ch2=(int)k2;
  switch(outstr[i])
 {
 case '+': resh=ch1+ch2;break;
 case '-': resh=ch1-ch2;break;
 case '<': resh=ch1<<ch2;break;
 case '>': resh=ch1>>ch2;break;
 default: printf("\nError!");
 }
 push(num,resh);
 }
 printf("\nResenie: %f ",resh);

 getch();
 }
Вложения
Тип файла: rar Полноценный исходник.rar (910 байт, 3 просмотров)
alenka_ej вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с переводом в десятичную СС в Турбо Паскале Moneo Помощь студентам 6 10.02.2010 17:59
Задача Потенота. Проблема с переводом единиц измерения. Arkuz Помощь студентам 2 18.12.2009 18:12
С++.Чтение из файла - проблема с массивом типа char. AgIon Общие вопросы C/C++ 4 07.12.2009 00:39
Проблема с char v01umE Общие вопросы C/C++ 4 03.07.2008 21:37
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql Muahahaha PHP 8 27.03.2008 11:17