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

Помогите найти ошибку. Какая дата введена не верно и занести ее в стек(с использованием структуры) - C++

Восстановить пароль Регистрация
 
Gdasar
184 / 45 / 9
Регистрация: 18.02.2013
Сообщений: 417
Записей в блоге: 9
28.11.2013, 15:28     Помогите найти ошибку. Какая дата введена не верно и занести ее в стек(с использованием структуры) #1
Задача:
определить,какая дата введена не верно и занести ее в стек(с использованием структуры). По окончании работы программы вывести количество неверных дат.
Код:
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
#pragma hdrstop
#pragma argsused
 
#include <tchar.h>
#include <stdio.h>
#include <fstream.h>
 
struct date
{
   int day;
   int mou;
   int year;
};
 
int putstack(date *s,int max,int *top,date v)//помещение в стек
{
    if(*top<max)
    {
        (*top)++;
        s[*top]=v;
        return 0;//good
    }
    else
        return 1;//bad
}
 
 
int stackfull(int top,int max)//проверка на переполнение
{
    if(top==max)
    {
        return 1;//bad
    }
    else
        return 0;//good
}
 
void main()
{   int max=100; int top=-1;
    int shk=0;
    struct date v; struct date *s;
    ifstream in("input.txt");
    //ofstream out("output.txt");
    struct date tmp;
    while(!in.eof())
    {
     //in.get();
     in>>tmp.day;
     in.get();
     in>>tmp.mou;
     in.get();
     in>>tmp.year;
     if((tmp.day<=30&&tmp.day>0)&&(tmp.mou<=12&&tmp.mou>0)&&(tmp.year<=2014&&tmp.year>1980))
     {
     //good
     continue;
     }
     else
     {  //bad
     int full=stackfull(top,max);
     if(full==1)
      {
         printf("stek perepolnen"); exit(1);
      }
      else    //good
      {
         int put=putstack(s,max,&top,tmp);
         if(put==1)
         {
          printf("oshibka pomeshenia v steck");
          exit(1);
         }
         else  //good
           shk++;
     }
     }
    }
 /*out << tmp.day << " ";
 out << tmp.mou << " ";
 out << tmp.year << " ";*/
    in.close();
    //out.close();
    printf("%d",shk);
    getchar();
}
Ну в общем программа намертво виснет
Прошу помощи в нахождении ошибки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 15:28     Помогите найти ошибку. Какая дата введена не верно и занести ее в стек(с использованием структуры)
Посмотрите здесь:

C++ Помогите решить задачу с использованием структуры
C++ Описать структуру TIMETABLE с рассписанием поездов. Вывести на экран информацию о поездах, дата отправления которых введена с клавиатуры.
C++ Структуры. Помогите найти ошибку в программе
C++ Динамические структуры. Стек (помогите найти ошибку)
C++ Стек (найти ошибку в коде)
C++ Вывод информации о платежах, дата которых введена с клавиатуры
C++ На вход подается дата. Нужно вывести на экран, какая дата будет через 29 дней 12 часов и 44 минуты
Помогите найти ошибку в задаче на структуры C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru