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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.04.2008, 21:52   #11
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Знак процента - это остаток от деления. Если остаток равен нулю, значит первое число делится на второе (логично, не так ли? ).

А насчет твоего задания... Я удивляюсь, как оно у тебя вообще запускается. У меня пишет, что массив month определяется только в теле условия, а цикл его не видит вообще. Тебе лучше сделать матрицу 2х12. Первая строка - дни месяцев, если год делится на 400, а вторая - если не делятся.
Короче смотри сюда
Код:
        int index;                          //индекс нужного массива
        int months[2][12];

//первый массив - если год делится на 400
        months[0][0]=31;
        months[0][1]=29;
        months[0][2]=30;
        months[0][3]=31;
        months[0][4]=31;
        months[0][5]=30;
        months[0][6]=31;
        months[0][7]=30;
        months[0][8]=31;
        months[0][9]=30;
        months[0][10]=31;
        months[0][11]=30;                   
//извините за ламерство, но я не знаю, как по другому забить эти массивы :(

//второй массив - если год не делится на 400
        months[1][0]=31;
        months[1][1]=28;
        months[1][2]=31;
        months[1][3]=30;
        months[1][4]=31;
        months[1][5]=31;
        months[1][6]=30;
        months[1][7]=31;
        months[1][8]=30;
        months[1][9]=31;
        months[1][10]=30;
        months[1][11]=31;

//проверка

        if(Y%400==0)
                index=0;
        else
                index=1;

        for(int i=0; i<12; i++)
                cout<<"["<<i+1<<"] - "<<months[index][i]<<endl;
Вот это арбайтен. Но если тебе надо использовать эти массивы и в других функциях, то лучше сделать index глобальной переменной.

Последний раз редактировалось MaTBeu; 22.04.2008 в 22:15.
MaTBeu вне форума
Старый 22.04.2008, 23:09   #12
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

2lhOsvald
Какой-то странный у Вас календарь.
alexBlack вне форума
Старый 27.04.2008, 00:13   #13
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Привет MaTBeu!

Я тоже так сделал с массивом ( только чуть подругому.), и вынес в отдельную функцию.
А то не хотело работать, хотя как я читал в книге должен был заполняться.

Вот как я сделал:

[
Код:
B]void[/B] Mch()
{
if (Y%4==0)
   {
   month[0]=31;
   month[1]=29;
   month[2]=31;
   month[3]=30;
   month[4]=31;
   month[5]=30;
   month[6]=31;
   month[7]=31;
   month[8]=30;
   month[9]=31;
   month[10]=30;
   month[11]=31;
   }
else
   {
   month[0]=31;
   month[1]=28;
   month[2]=31;
   month[3]=30;
   month[4]=31;
   month[5]=30;
   month[6]=31;
   month[7]=31;
   month[8]=30;
   month[9]=31;
   month[10]=30;
   month[11]=31;
   }
}

Последний раз редактировалось merax; 07.07.2008 в 09:04.
lhOsvald вне форума
Старый 27.04.2008, 00:29   #14
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Вообще мне этот массив нужен для подсчета количества дней.
т.е. нужно ввести дату: число, месяц, год, ипрограмма должна выдать номер дня с начала года.

Я вот наконецто разобрался!

Проблеммой сначала было найти делится ли год на 4 или нет, но с твоей MaTBeu помощью я решил это., потом я долго возился со всякими условиями на проверку корректности ввода числа, исходя из допустимого колличества дней в данном месяце, в этом году (высокосный он или нет).

Но вроде уже работает.

только возможно ее можно было покороче сделать.

Кстати это правильное условие - что высокосный год должен делиться на 4?
lhOsvald вне форума
Старый 27.04.2008, 01:52   #15
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от lhOsvald Посмотреть сообщение
Кстати это правильное условие - что высокосный год должен делиться на 4?
Не совсем. Если год делится на 100 ( 1900, 2000), то он должен ещё и делиться на 400 (2100, 2200 - обычные, 2000, 2400 - високосные)
B_N вне форума
Старый 27.04.2008, 03:13   #16
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Спасибо !!! B_N

Вот мне сказали еще один вариант - что делится на 4 но не делиться на 100?

Последний раз редактировалось lhOsvald; 27.04.2008 в 03:38.
lhOsvald вне форума
Старый 27.04.2008, 04:35   #17
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
2lhOsvald
Какой-то странный у Вас календарь.
Привет !

В смысле странный?
lhOsvald вне форума
Старый 27.04.2008, 09:03   #18
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от lhOsvald Посмотреть сообщение
Привет !

В смысле странный?
Это я про пост #10 (там 30/31 перепутаны). Но Вы уже исправили.
alexBlack вне форума
Старый 27.04.2008, 17:29   #19
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
По умолчанию

Цитата:
Это я про пост #10 (там 30/31 перепутаны). Но Вы уже исправили

Да, это я тогда так для примера написал.
lhOsvald вне форума
Старый 27.04.2008, 22:38   #20
lhOsvald
Пользователь
 
Регистрация: 18.04.2008
Сообщений: 12
Восклицание

Цитата:
Сообщение от B_N Посмотреть сообщение
Не совсем. Если год делится на 100 ( 1900, 2000), то он должен ещё и делиться на 400 (2100, 2200 - обычные, 2000, 2400 - високосные)
Тут как то не так, почему это 2100 не высокосный?

Высокосный год же повторяется через каждые 4 года? Так если подсчитать, то получается что 2100 должен быть высокосным!
lhOsvald вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление записи из динамического масива... Altera Общие вопросы Delphi 4 09.06.2008 09:15
Ранжирование и умножение масива 11111 Паскаль, Turbo Pascal, PascalABC.NET 3 02.11.2007 22:01
1. Сортировка Шелла по убыванию 2. Сортировка вставками по убыванию Arkuz Помощь студентам 1 25.09.2007 17:16
элемменты заданого масива a(n) перепешите в новый масив b(n) в обратном порядке! finch Помощь студентам 4 25.06.2007 13:20
СОХРАНИЯ В ФАЙЛ ДВУМЕРНОГО ДИНАМИЧЕСКОГО МАСИВА!!!! _FL@ER_ Помощь студентам 2 23.06.2007 16:31