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

Вогнать в цикл - C++

Восстановить пароль Регистрация
 
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
17.10.2010, 20:26     Вогнать в цикл #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
//---------------------------------------------------------------------------
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include <vcl.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{  int m,d,MaxDay;
   cout<<"Enter m: ";
   cin>>m;
   if(m>=1 && m<=12)
   {
   switch(m)
   {case 4:case 6:case 9:case 11:   MaxDay=30;break;
    case 2: MaxDay=28;break;
    default:MaxDay=31;break;
   }
   cout<<"Enter d: ";
   cin>>d;
    if(d>=1 && d<=MaxDay)
     cout<<"Yes";
    else
       cout<<"No";
     }
     else
   cout<<"No";
  getch();
        return 0;
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2010, 20:26     Вогнать в цикл
Посмотрите здесь:

Цикл с++ C++
C++ Цикл y=1+x+x^2+x^3+...+x^n;
C++ Цикл
Цикл while (на С) C++
C++ Цикл for
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Stas96
 Аватар для Stas96
34 / 34 / 3
Регистрация: 31.08.2009
Сообщений: 116
17.10.2010, 21:07     Вогнать в цикл #2
Вот используй оператор goto:
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
//---------------------------------------------------------------------------
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include <vcl.h>
#pragma hdrstop
 
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
int main(int argc, char* argv[])
 
{  
    
g: int m,d,MaxDay;
   cout<<"Enter m: ";
   cin>>m;
   if(m>=1 && m<=12)
   {
   switch(m)
   {case 4:case 6:case 9:case 11:   MaxDay=30;break;
    case 2: MaxDay=28;break;
    default:MaxDay=31;break;
   }
   cout<<"Enter d: ";
   cin>>d;
    if(d>=1 && d<=MaxDay)
     cout<<"Yes\n";
    else
       cout<<"No\n";
     }
     else
   cout<<"No\n";
  getch();
 
  goto g;
      return 0;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
17.10.2010, 21:12  [ТС]     Вогнать в цикл #3
Спасибо....но мне хотелось бы через while.Я while сейчас изучаю.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.10.2010, 21:15     Вогнать в цикл #4
Stas96, Что ж вы советуете то... goto... Пишите на языке среднего уровня, а пользуетесь метками. Нехорошо.

Добавлено через 3 минуты
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
int main(int argc, char* argv[])
 
{  
        
 int m,d,MaxDay;
   while(1)
   {
   cout<<"Enter m: ";
   cin>>m;
   if(m>=1 && m<=12)
   {
   switch(m)
   {case 4:case 6:case 9:case 11:   MaxDay=30;break;
    case 2: MaxDay=28;break;
    default:MaxDay=31;break;
   }
   cout<<"Enter d: ";
   cin>>d;
    if(d>=1 && d<=MaxDay)
     cout<<"Yes\n";
    else
       cout<<"No\n";
       break;
     }
     else
   cout<<"No\n";
   break;
  }
      getch();
      return 0;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
17.10.2010, 21:30  [ТС]     Вогнать в цикл #5
Спасибо ОГРОМНОЕ!

Добавлено через 10 минут
А неее...а вы проверьте ...не работает...надо так чтобы много раз можно было вводить месяц пока он не станет ложным.а в данном цикле так не выходит((
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.10.2010, 21:35     Вогнать в цикл #6
barlog, Это как это? Ща проверю.
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
17.10.2010, 21:37  [ТС]     Вогнать в цикл #7
Тут что-то с break-ами не так....не знаю что((...
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.10.2010, 21:37     Вогнать в цикл #8
Так работает.

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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main(int argc, char* argv[])
 
{  
        
 int m,d,MaxDay;
   while(1)
   {
   cout<<"Enter m: ";
   cin>>m;
   if(m>=1 && m<=12)
   {
   switch(m)
   {case 4:case 6:case 9:case 11:   MaxDay=30;break;
    case 2: MaxDay=28;break;
    default:MaxDay=31;break;
   }
   cout<<"Enter d: ";
   cin>>d;
    if(d>=1 && d<=MaxDay)
     cout<<"Yes\n";
    else
    {
       cout<<"No\n";
       break;
    }
     }
     else
     {
   cout<<"No\n";
   break;
   }
  }
      getch();
      return 0;
}
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227
17.10.2010, 21:41  [ТС]     Вогнать в цикл #9
Агааа....точно...если поставить фигурные скобки, то он понимает к чему break относится...СПАСИБО)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2010, 23:06     Вогнать в цикл
Еще ссылки по теме:

Цикл for C++
C++ цикл while
C++ Изменить цикл for на цикл do-while

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.10.2010, 23:06     Вогнать в цикл #10
так интереснее
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
#include <stdio.h>
 
enum { LO_YEAR = 1970, HI_YEAR = 2030 };
 
typedef struct {
    int year;
    int month;
    int day;
} date_t;
 
int leap_year(int year) { return year % 4 == 0 && year % 100 != 0 || year % 400 == 0; }
 
int correct_date(const date_t * date){
    static const int month_days[2][12] = {
        { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
        { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
    };
    return ( ( date->year >= LO_YEAR && date->year <= HI_YEAR )
        && ( date->month >= 1 && date->month <= 12 )
        && ( date->day >= 1 && date->day <= month_days[leap_year(date->year)][date->month - 1] )
    );
}
 
int main(void){
    date_t date;
    char answ;
    const char * months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
    
    while ( 1 ){
        while ( printf("Date (dd-mm-yyyy): ") 
            && scanf("%d%*c%d%*c%d%*c", &date.day, &date.month, &date.year) != 3
            || ! correct_date(&date) && printf("Wrong date! Try again? (y/n): ")
            && scanf("%c%*c", &answ) )
                if ( answ != 'y' && answ != 'Y' )
                    return 1;
        printf("%d %s '%02d\n", date.day, months[date.month - 1], date.year % 100);
        
        printf("continue? (y/n): ");
        scanf("%c%*c", &answ);
        if ( answ != 'y' && answ != 'Y' )
            break;
    }
    
    return 0;
}
Yandex
Объявления
17.10.2010, 23:06     Вогнать в цикл
Ответ Создать тему
Опции темы

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