![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Mishan33 |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
дана массив структур, в каждой из которых есть элемент bday[3] - массив из 3-х элементов целого типа:
1-й элемент - это день 2-й - месяц 3-й - год
struct note {
char name[30];
unsigned long int tele;
unsigned int bday[3];
};
note blocknote[7];
Вопрос: есть ли какая-нибудь функция сравнения времени (кроме как тупо условиями по каждому элементу), или функция, которая преобразовает дату в одно число (помнится в делфи была такая) Сообщение отредактировано: Mishan33 - 4.11.2007 20:48 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Есть dostounix(), которая преобразует дату/время в число секунд, прошедших с полуночи 1 Января 1970 но для этого надо пользоваться типами struct date и struct time, а не самодельными велосипедами...
|
Mishan33 |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
ок,спасибо большое, сейчас попробую!
|
Mishan33 |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
вообщем забил я на эту функцию и сделал тупо условиями, но вот только почему то результат оставляет желать лучшего, никак не поддается, помогите найти ошибку...
ах да, собсна сама задача: Описать структуру с именем Note, содержащую следующие поля: name-фамилия и имя, tele- номер телефона, bday-день рождения (массив из 3 чисел). Написать программу, выполняющую ввод с клавиатуры данных в массив Blocknote, состоящий из 8 элементов типа Note. Записи должны быть упорядочены по датам дней рождения. Вывести на экран полученный результат. а вот мое решение (Dev C++): #include <cstdlib>
#include <iostream>
using namespace std;
struct note {
char name[30];
unsigned long int tele;
int b_day[3];
};
const int msize=2;
note blocknote[msize];
char *tmp;
int minc,minn,mmounth,mday,myear,mtele;
char mname[30];
int main(int argc, char *argv[])
{
for(int i=0;i<msize+1;i++)
{
cout<<"\nEnter name "<<" ["<<i+1<<"]\n";
cin>>blocknote[i].name;
strcat(blocknote[i].name,"\0");
cout<<"Enter tel\n";
cin>>blocknote[i].tele;
cout<<"Enter day of bd\n";
cin>>blocknote[i].b_day[0];
cout<<"Enter mounth of bd\n";
cin>>blocknote[i].b_day[1];
cout<<"Enter year of bd\n";
cin>>blocknote[i].b_day[2];
}
for (int i=0;i<msize+1;i++)
{
mday=blocknote[i].b_day[0];
mmounth=blocknote[i].b_day[1];
myear=blocknote[i].b_day[2];
mtele=blocknote[i].tele;
strcpy(mname,blocknote[i].name);
minn=i;
for(int j=i+1;j<msize+1;j++)
{
if (blocknote[j].b_day[2]<myear)
{
mday=blocknote[j].b_day[0];
mmounth=blocknote[j].b_day[1];
myear=blocknote[j].b_day[2];
mtele=blocknote[j].tele;
strcpy(mname,blocknote[j].name);
minn=j;
}
if (blocknote[j].b_day[2]=myear)
{
if (blocknote[j].b_day[1]<mmounth)
{ mday=blocknote[j].b_day[0];
mmounth=blocknote[j].b_day[1];
myear=blocknote[j].b_day[2];
mtele=blocknote[j].tele;
strcpy(mname,blocknote[j].name);
minn=j;
}
if (blocknote[j].b_day[1]=mmounth)
{
if (blocknote[j].b_day[0]<mday)
{ mday=blocknote[j].b_day[0];
mmounth=blocknote[j].b_day[1];
myear=blocknote[j].b_day[2];
mtele=blocknote[j].tele;
strcpy(mname,blocknote[j].name);
minn=j;
}
}
}
}
blocknote[minn].b_day[2]=blocknote[i].b_day[2];
blocknote[minn].b_day[1]=blocknote[i].b_day[1];
blocknote[minn].b_day[0]=blocknote[i].b_day[0];
blocknote[minn].tele=blocknote[i].tele;
strcpy(blocknote[minn].name,blocknote[i].name);
blocknote[i].b_day[2]=myear;
blocknote[i].b_day[1]=mmounth;
blocknote[i].b_day[0]=mday;
blocknote[i].tele=mtele;
strcpy(blocknote[i].name,mname);
}
for(int i=0;i<msize+1;i++)
{
cout<<blocknote[i].name<<" "<<blocknote[i].tele<<" "<<blocknote[i].b_day[0]<<"/"<<blocknote[i].b_day[1]<<"/"<<blocknote[i].b_day[2]<<"\n";
}
system("PAUSE");
return EXIT_SUCCESS;
}
Сообщение отредактировано: Mishan33 - 5.11.2007 1:36 |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата сделал тупо условиями Вот расскажи мне, ты на каком языке вообще пишешь программу? На С++, или на С, но с использованием плюсовых (почему-то) потоков? Если на С, то делай на С все, а не часть. Если на С++, то опиши класс TMyTime, для которого определи операции сравнения и вывода в поток, и будешь работать с этим классом как с любым другим встроенным типом.А "спагетти"... Не хочется разбираться в нем, ибо для тебя это все равно, сдать и забыть... Сообщение отредактировано: volvo - 7.11.2007 0:32 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 0:24 |