Форум программистов, компьютерный форум CyberForum.ru

Стек - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ сортировка по фамилии http://www.cyberforum.ru/cpp-beginners/thread198397.html
написал программу которая сортирует по году и по фамилии, но вот только по фамилии не сортирует прекращает работу, в чем тут ошибки не пойму уже все перепробовал-помогите пожалуйста // Spisok.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <windows.h> #include <stdlib.h> #include <stdio.h> #include <string.h>
C++ Определить,является ли количество отрицательных элементов числом нечетных Помогите кто нибудь пожалуйста написать программы в С++... Используя массивы: 1.)Дан массив a(n).Определить,является ли количество отрицательных элементов числом нечетных. 2.)Дан массив а(n).Найти сумму цифр каждого элемента массива. Используя цикл с параметром: 1.)Вывести на экран все четные трехзначные числа. Используя цикл с предусловием: 1.)Дано число найти сумму нечетных цифр. ... http://www.cyberforum.ru/cpp-beginners/thread198396.html
Работа с строками в с++ C++
Помогите пожалуйста!!!! Контрольная на носу….. Не могу решить одну задачу: Надо составить программу преобразование строки, представляющую запись целого десятичного числа, в целое десятичное числа, в целое десятичное число… С использование стандартных функций isdigit(), isspace()
Вычислить количество элементов массива, равных 0 C++
C++. Одномерные массивы. Помогите пожалуйста с заданием в С++. В одномерном массиве,состоящем из n вещественных элементов,вычислить: 1)количество элементов массива,равных 0. 2)сумму элементов массива,расположенных после минимального элемента. упорядочить элементы массива по возрастанию модулей элементов. Если можно ещё начертите блок-схему.!! заранее всем СПАСИБО!!!
C++ Создать два новых массива: в первый перенести все цифры из исходного массива, во второй - все остальные символы http://www.cyberforum.ru/cpp-beginners/thread198357.html
Задан массив из k символов.Создать два новых массива: в первый перенести все цифры из исходного массива, во второй - все остальные символы. Помогите пожалуйста.
C++ Определить с точностью до 0,2 точку пересечения функции Определить с точностью до 0,2 точку пересечения функции y=x-exp(-ax2) с осью x при изменении аргумента x от b0 до bm с шагом 0,2. Значения a, b0, bm вводятся с клавиатуры. Сначала не обходимо определить знак функции y при x=b0. Изменение знака функции свидетельствует о пересечении оси x. подробнее

Показать сообщение отдельно
Цветик
3 / 1 / 1
Регистрация: 13.10.2010
Сообщений: 42
27.11.2010, 13:11     Стек
В текстовом файле записана без ошибок формула вида: цифра или S(формула, формула), или P(формула, формула), где S (a, b) = (a+b) mod 10, P(a, b) = (a*b) mod 10. Вычислить значение данной формулы. Например: P(6, S(8, 4)) = 2.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
 
struct stek {
  char sym;
  struct stek *next;
};
stek *vstek (stek **ns, int x)
{
  stek *tmp1;        // вспомогательный указатель
  tmp1 = new stek;    /*выделяем память под новый элемент стека*/
  tmp1 -> sym = x;    // задаем значение
  tmp1 -> next = *ns;    /*добавляем новый элемент в вершину стека*/
  *ns = tmp1;
  return *ns;        //возвращаем новое значение вершины
}
stek *izsteka (stek **ns)
{
  stek *tmp;
  tmp = *ns;
  if( *ns==NULL )          //при нулевом указателе вершины
    cout << "Stek pust!";
  else
  {
    *ns = tmp->next;        //вершина - следующий элемент
    delete tmp;          // освобождаем память
  }
  return *ns;
}
 
void main ()
{ clrscr();
  char c,e; // для символа
  char f[12] ={ 'P','S','0','1','2','3','4','5','6','7','8','9'};
  stek *head = NULL;  // вершина стека
  FILE *file; // для описателя файла
  int a;  // 
  int b;  //  
  int SP; // 
 
  file = fopen("F:\doc.dat","r"); // открываем файл
  if(file == NULL) // если функция вернула 0 файл не открылся,
  {                 // предупреждаем и выходим
    cout<<"Error. Can't open file.";
    getch();
    exit(1);        
  }
 
   while(!feof(file)){  // feof - размер файла
 
   fscanf(file, "%c", &c); // считываем очередной символ из файла
    for(int j=0; j<strlen(f); j++) // strlen - длина массива
    if (c==f[j]) vstek(&head,(int)c);  // заносим получ. символ в стек
            // если символ совпал с символом из массива
    if (c==')'){
 
    // выдергиваем верхнии 3 элемента из стека
    c=head->sym;
    a=(int)c;
    izsteka(&head)->sym; 
    c=head->sym;
    b=(int)c;
    izsteka(&head)->sym; 
    c=head->sym;
    SP=c;
    izsteka(&head)->sym;
 
    // вычисляем по формуле
     if (SP=='S') a=a+b; // если S, то (a+b)
     if (SP=='P') a=a*b; // если P, то (a*b)
     a=a%10;
    e=(char)a;
 
     vstek(&head,e); // кладем результат в стек
     c=0; // обнуляем [c char]
    }
   }
 
  fclose(file); // закрываем файл
  c=(char)head->sym;
  cout << "Result: " << c; // показываем результат
  getch();
}
Вроде работает но блин почему то результат выводит 0, подскажите где ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru