Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Plain Text by 1111 ( 14 years ago )
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
struct date{
int dd,mm,yy;
};
struct student{
char *name;
date bd;
};
int datecmp(date,date);
void date_print(date);
void sort(student*,int);
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"RUS");
int n,i;
char f[25];
student *p;
cout<<"Введите количество студентов ";
cin>>n;
p=new student[n];
for(i=0;i<n;i++){
cout<<"Введите фамилию "<<i+1<<"-го студента ";
cin>>f;
cout<<"Введите его дату рождения ";
cin>>p[i].bd.dd>>p[i].bd.mm>>p[i].bd.yy;
p[i].name=f;
}
cout<<"Список студентов :\n";
for(i=0;i<n;i++){
cout.width(26);
cout<<p[i].name<<" ";
date_print(p[i].bd);
}
sort(p,n);
cout<<"Упорядоченный список студентов :\n";
for(i=0;i<n;i++){
cout.width(26);
cout.setf(1);
cout<<p[i].name<<" ";
date_print(p[i].bd);
}
getchar();
return 0;
}
void date_print(date d)
{
string str,dd,mm,yy;
char s[9]={NULL};
itoa(d.dd,s,10);
dd=s;
if(dd.length()==1){
dd+=dd[0];
dd[0]='0';
}
itoa(d.mm,s,10);
mm=s;
if(mm.length()==1){
mm+=mm[0];
mm[0]='0';
}
itoa(d.yy,s,10);
yy=s;
str=dd;
str+='.';
str+=mm;
str+='.';
str+=yy;
for(int i=0;i<str.length();i++)
cout<<s[i];
cout<<endl;
str.clear();dd.clear();mm.clear();yy.clear();
}
void sort(student *d,int n)
{
int f,k=0,i;{
do{
f=0;
for(i=0;i<n-1-k;i++,k++){
if(strcmp(d[i].name,d[i+1].name)>0){
student tmp;
tmp=d[i];
d[i]=d[i+1];
d[i+1]=tmp;
f=1;
}
}
}while(f);
}
}
Revise this Paste