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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bubik
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 21
#1

Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе - C++

15.05.2013, 22:47. Просмотров 448. Ответов 5
Метки нет (Все метки)

Программа выводит число и месяц по вводимому номеру порядкового дня. Этот код программы со структурой! Программа вылетает, после того, как введешь номер порядкового дня. Помогите понять, что за ошибка, и по возможности исправьте, пожалуйста!!!

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
#include "stdafx.h"
#include <iostream>
using namespace std; 
 
struct data {
int d;
int y;
int dy;
int *pm; 
int *pd;
};
 
static char daytab[2][13] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
 
void daymonth (data d)
 
{
int l;
char *p;
l = (d.y%4 == 0) && (d.y%100 != 0) || (d.y%400 == 0);
p=daytab[l];
while (d.dy>*++p)
d.dy-=*p;
*d.pm=p-*(daytab+l);
*d.pd=d.dy;
}
 
int _tmain()
 
{ data date;
cout<<"Vvedite poryadkoviy nomer chisla: \n";
cin>>date.d;
cout<<"Vvedite god: \n";
cin>>date.y;
 
daymonth(date);
cout<<endl<<"Day: "<<date.pd<<endl;
cout<<"Month: "<<date.pm<<endl;
cout<<"Year: "<<date.y<<endl<<endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 22:47     Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе
Посмотрите здесь:

программа которая по номеру дня в году выводит число и месяц - C++
программа которая по номеру дня в году выводит число и месяц (например, 7-й день года — 7 января) что б при запуске появилось сообщение...

Вычислить число и месяц в невисокосном году по номеру дня - C++
Вычислить число и месяц в невисокосном году по номеру дня.

По номеру дня в году вывести число и месяц в общепринятой форме - C++
Составить программу, которая по номеру дня в году выводит число и месяц в общепринятой форме. Например, 33-ий день в году – 2 февраля.

По заданному году и порядковому номеру дня в году определять день недели и месяц этого дня - C++
Задачу не можем решить 3 людьми. ______________________________ Написать программу, которая бы позволяла по заданному году и...

Составить программу, которая в зависимости от порядкового номера дня месяца (1,2,.,12) выводит на экран врем - C++
Нужна помощь в разборе задачи на С++. Начал изучать язык и столкнулся с проблемой того, что не могу разобраться с действием оператора...

Составьте программу, печатающую по номеру дня недели (число от 1 до 7) название этого дня - C++
Составьте программу, печатающую по номеру дня недели (число от 1 до 7) название этого дня (понедельник, вторник и т. д.).

Программа которая выводит имя (ошибка в программе) - C++
Написал программу: #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int name; cout &lt;&lt;...

Вывести N-е полупростое число (программа постоянно выводит число 4; не могу понять в чем ошибка) - C++
ПОМОГИТЕ ПОЖАЛУЙСТА НАЙТИ ОШИБКУ! #include &lt;stdio.h&gt; #include &quot;fstream&quot; #include &lt;iostream&gt; #include &lt;vector&gt; using...

По заданной дате (число, месяц, год, например, 6, 5, 2012) вычислить номер дня в году - C++
2)По заданной дате (число, месяц, год, например, 6, 5, 2012) вычислить номер дня в году (от 1до 365 или 366, если год високосный).

Оформить в виде структуры год, месяц, число. Описать функцию для определения дня недели - C++
Оформить в виде структуры год, месяц, число. Описать функцию для определения дня недели, на который приходится заданная дата (учесть, что...

По номеру дня месяца вывести на экран день недели, если первое число пришлось на субботу - C++
По номеру дня месяца вывести на экран день недели, если первое число пришлось на субботу. Помогите составить программу Добавлено...

Составить программу, которая по номеру введенного дня недели вводит название дня. - C++
Составить программу, которая по номеру введенного дня недели вводит название дня.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.05.2013, 23:23     Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе #2
учитесь пользоваться дебагером.
проблемный код:
C++
1
2
3
4
5
6
...
while (d.dy>*++p)
  d.dy-=*p;
*d.pm=p-*(daytab+l);
*d.pd=d.dy;
...
d.dy - неинициализировано, значит значение может быть любым, значит тело цикла может выполняться
неопределенное количество раз. но так как там только операции чтения, это не приводит к крашу. к
крашу приводят следующие после цикла строки.
d.pm - неинициализированный указатель.
*d.pm - разыменовывание неинициализированного указателя дает неопределенное поведение (например краш приложения.)
bubik
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 21
15.05.2013, 23:46  [ТС]     Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе #3
DU, Спасибо за пояснение, но я все равно не очень все понял...)
Не могли бы вы помочь исправить?
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.05.2013, 23:57     Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе #4
неинициализированные переменные нужно явно проинициализировать какими-нибудь значениями. какими именно - вам виднее. я задумку программы не понял и не очень охото пытаться понять. так что постарайтесь как-нибудь сами.
zatochka
Сообщений: n/a
16.05.2013, 02:54     Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе #5
Вам надо задать конкретные начальные значения переменных, и указать, на, что ссылается ваша переменная-указатель.) Только и всего. А какие они будут, это вы посмотрите сами относительно постановки задачи.
bubik
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 21
16.05.2013, 20:20  [ТС]     Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе #6
Все, разобрался)
Спасибо большое!
Yandex
Объявления
16.05.2013, 20:20     Программа выводит число и месяц по вводимому номеру порядкового дня: ошибка в программе
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru