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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2011, 06:24   #1
SimplyZero
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 11
Восклицание Определить сколько дней до конца года С

При помощи стандартной программы С(не С++) решить задачу
Даны натуральные числа a b c обозначающие число месяц и год.
Определить:
а) сколько осталось дней до конца года.
б)сколько плоных месяцев осталось до конца года.

за ранее спасибо за помощь.
SimplyZero вне форума Ответить с цитированием
Старый 15.07.2011, 12:07   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

посмотрите для начала в эту тему Программа на календарь.
задание не точно такое же,
но явно они (задания) братья-близнецы.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.07.2011, 00:40   #3
SimplyZero
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 11
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
 unsigned how_many_days ( unsigned year, unsigned month, unsigned day)
{
  const unsigned month12[12] = { 31,29,31,30,31,30,31,31,30,31,30,31};
  unsigned days = month12[month-1] - day;
  if ( year % 4 && month <= 2) days--;
  while ( month < 12 )
    days += month12[month++];
  return days;
}
 int main ( )
{
   setlocale(LC_ALL,"Rus");
   unsigned year, month, day;
   printf ("Введите день, месяц, год : ");
   scanf ( "%d%d%d", &day, &month, &year);
   printf ( "Осталось до конца года полных дней : %d, осталось до конца года полных месяцев : %d \n", how_many_days( year, month, day), 12-month);
  system ( "pause");
 return 0;
что не правельно !? ругается на команду setlocale(LC_ALL,"Rus");



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 18.07.2011 в 08:12.
SimplyZero вне форума Ответить с цитированием
Старый 17.07.2011, 00:59   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
#include <locale.h>
ЗЫ
Цитата:
Код:
if ( year % 4 && month <= 2) days--;
Проверка на високосный год неполная.
Правильная вот:
Код:
if ((year % 4 == 0 && year % 100) || year % 400 == 0);  // Кратный 4 и не кратный 100, или кратный 400
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062

Последний раз редактировалось Mandrivnyk; 17.07.2011 в 01:08.
Mandrivnyk вне форума Ответить с цитированием
Старый 17.07.2011, 01:04   #5
SimplyZero
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 11
По умолчанию

добавил ошибок нету но пишет



Disallowed system call: SYS_fork

http://codepad.org/yOYjoT1r вот компилятор может с ним что-то не так)))


if ((year % 4 == 0 && year % 100) || year % 400 == 0); // Кратный 4 и не кратный 100, или кратный 400 ввел команду ошибок по прежнему нет но и не нравится что-то))
http://codepad.org/07sZS3t3

по копался нашел объяснение
Output:
1 Disallowed system call: SYS_fork
ясен пень.
кому попало эти фишки не будут разрешать
а если какой-нибудь юный хацкер сделает system("cat /etc/passwd") или system("format c: /U") :gigi:
подскажите насколько я понял программа работает но этот компилятор не разрешает ее запускать!?

Последний раз редактировалось SimplyZero; 17.07.2011 в 01:19.
SimplyZero вне форума Ответить с цитированием
Старый 17.07.2011, 12:41   #6
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Цитата:
1 Disallowed system call: SYS_fork
ясен пень.
кому попало эти фишки не будут разрешать
а если какой-нибудь юный хацкер сделает system("cat /etc/passwd") или system("format c: /U") :gigi:
подскажите насколько я понял программа работает но этот компилятор не разрешает ее запускать!?
я под линуксом командой
Код:
system ("pause");
вообще не пользуюсь.
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 18.07.2011, 03:30   #7
SimplyZero
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 11
По умолчанию

помогите кто-нибудь решить во вторник уже на практику!!))
SimplyZero вне форума Ответить с цитированием
Старый 18.07.2011, 08:11   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

SimplyZero, насколько я вижу, у Вас уже есть решение.
Чем Вас не устраивает?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.07.2011, 12:23   #9
SimplyZero
Пользователь
 
Регистрация: 08.07.2011
Сообщений: 11
По умолчанию

решил по отдельности делать с днями получилось

#include <stdio.h>
#include <time.h>
#include <locale.h>
int main(void){
time_t curTime, nyTime;
struct tm ny;

curTime = time(NULL);
ny = *localtime(&curTime);
ny.tm_year += 1;
ny.tm_mon = 0;
ny.tm_mday = 1;
ny.tm_hour = 0;
ny.tm_min = 1;
nyTime = mktime(&ny);

printf("%d day to New Year.\n", ( nyTime - curTime ) / 60 / 60 / 24);

return 0;
}

теперь надо с месяцеми...
SimplyZero вне форума Ответить с цитированием
Старый 18.07.2011, 13:52   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

то, что Вы написали:
1) очень некрасиво (хоть и работоспособно)
2) не отражает условие задачи (вам в задании нужно получить число дней от даты a b c)

повторюсь.
У Вас было готовое НОРМАЛЬНОЕ решение. Чем оно Вас не устроило?!!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить сколько знаков в числе, вычислить сумму цифр и определить старшую цифру Blombox Помощь студентам 5 25.04.2011 15:52
Ск. дней до конца месяца 0mega Microsoft Office Excel 6 09.05.2010 23:38
расчитать сколько осталось дней до дня рождения mars56 Microsoft Office Excel 4 10.12.2009 10:01
Вывести на экран монитора сколько прошло дней с нового года На С++ K[Lanc]N Помощь студентам 3 18.02.2009 21:06
число дней в месяце конкретного года (Excel) Andrew_R Microsoft Office Excel 2 28.10.2007 21:22