Вопрос Помогите сформулировать условие для поиска по структурам C++

Статус
В этой теме нельзя размещать новые ответы.
Регистрация
15 Июн 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Всем привет! не могу сформулировать условие для поиска по дате. Собственно сама задача ниже.
Справка о междугороднем телефонном разговоре содержит: номер телефона абонента (6 цифр), дату (год, месяц, день), время (час, минута), код города (3 цифры), номер телефона в другом городе (7 цифр), продолжительность разговора (в минутах), категорию (срочный, обычный) и тариф (плата в рублях за минуту). Вывести на экран номер телефона абонента, код города и номер телефона в другом городе для срочных телефонных разговоров, состоявшихся между 15 марта и 12 апреля 1996 года.
#include
#include
#include
#include
#include
struct tel
{
char nomer[12];
struct data{
int day;
int mes;
int god;
} dat;
char vremya[5];
int kodgor;
char nomer2[12];
char prodolj[5];
char kateg[10];
char tarif[5];
};
void main(){
tel a[10];
int i, aa, b, x = 1;
int d11, d12, d13, d21, d22, d23;
while (true){
printf("1.Vvod ");
printf("2.Vivod ");
printf("3.poisk po nomery i date ");
scanf("%i", &aa);
fflush(stdin);
switch (aa)
{
case 1:
printf("Kolli4estvo zapisey: "); scanf("%i", &x); fflush(stdin);
{for (i = 0; i<x; i++){
printf("nomer: "); gets(a.nomer);
printf("day(XX): "); scanf("%i", &a.dat.day); fflush(stdin);
printf("mes(XX): "); scanf("%i", &a.dat.mes); fflush(stdin);
printf("god(XXXX): "); scanf("%i", &a.dat.god); fflush(stdin);
printf("vremya(MM:HH): "); gets(a.vremya);
printf("kodgoroda: "); scanf("%i", &a.kodgor);
fflush(stdin);
printf("nomer2: "); gets(a.nomer2);
printf("prodoljitelnost: "); gets(a.prodolj);
printf("kategoriya(sr/ob): "); gets(a.kateg);
printf("tarif: "); gets(a.tarif);
printf(" ");
}
break;
}
case 2:{
for (i = 0; i<x; i++)
{
printf("nomer:%s ", a.nomer);
printf("data:%i", a.dat.day);
printf(".%i", a.dat.mes);
printf(".%i ", a.dat.god);
printf("vremya:%s ", a.vremya);
printf("kodgoroda:%i ", a.kodgor);
printf("nomer2:%s ", a.nomer2);
printf("prodoljitelnost:%s ", a.prodolj);
printf("kategoriya:%s ", a.kateg);
printf("tarif:%s ", a.tarif);
printf(" ");
}
break;
}
case 3:{printf("VVedite 1 datu(day XX):");
scanf("%i",&d11); fflush(stdin);
printf("VVedite 1 datu(mes XX):");
scanf("%i", &d12); fflush(stdin);
printf("VVedite 1 datu(god XXXX):");
scanf("%i", &d13); fflush(stdin);
printf("VVedite 2 datu(day XX):");
scanf("%i", &d21); fflush(stdin);
printf("VVedite 2 datu(mes XX):");
scanf("%i", &d22); fflush(stdin);
printf("VVedite 2 datu(god XXXX):");
scanf("%i", &d23); fflush(stdin);
for(i=0;i<x;i++){if(????)
дальше не влезло, вывод сам могу
 
Функции еще не учили? Жаль. Ну тогда, если у нас есть int year1,month1, day1, year2,month2, day2; то узнать, кто из них позднее, можно, сравнив числа year1*10000 + month1*100+ day1 и year2*10000 + month2*100+ day2. Коэфициенты взяты так, чтобы цифры лет, месяцев и дней не налагались; их можно уменьшить при желании до 384 и 31. Конечно, можно писать длинное сложное условие вроде if( (year1>year2) || ((year1==year2) && ((month1 > month2) || (month1==month2) && ... но собрать все в одно число для новичка проще. Функциями было бы еще понятнее, но пока не учили... И да, C с C++ здесь в "других языках и технологиях"
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху