- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct pl
{
int speed;
double time;
char cname[25];
}player;
int cni;//countries number
static double disti;//distance of road
player *bpll;
class country
{
public:
// country();
// country(country& cnr);
void setinfo();
char name[25];
int pn;
int sp;
player *cpl;
player *bpl;
void getname(char *name);
void findbestplayer(int pp);
void sortplayers();
~country();
};
void country::setinfo()
{
static char nm[255];
printf("Enter country name\n");
gets(nm);
strcpy(name,nm);
printf("Country name: %s\n",name);
static char pnc[25];
printf("Enter number of players: ");
gets(pnc);
pn=atoi(pnc);
cpl=new player[pn];
for(int i2=0;i2<pn;i2++)
{
int spd;
static char spdc[10];
printf("Enter speed of player %d:",i2+1);
gets(spdc);
spd=atoi(spdc);
cpl[i2].speed=spd;
cpl[i2].time=disti/spd;
memset(&cpl[i2].cname,0x20,25);
strcpy(cpl[i2].cname,name);
printf("Player time %f\n",cpl[i2].time);
};
return;
};
country::~country()
{
delete []cpl;
delete []bpl;
};
void country::findbestplayer(int pp)
{
int min=0;
bpl=new player;
for(int i=1;i<pn;i++)
{
if(cpl[i].time<cpl[min].time){
min=i;
};
bpl=&cpl[min];
};
return;
};
int compare (player * arg1, player * arg2);
int main(int argc,char *argv[])
{
static char cn[10];
static char dist[10];
printf("Enter distance\n");
gets(dist);
disti=atoi(dist);
printf("Enter number of countries\n");
gets(cn);
cni=atoi(cn);
country c1[cni];
bpll=new player[cni];
for(int i=0;i<cni;i++)
{
c1[i].setinfo();
c1[i].findbestplayer(c1[i].pn);
printf("best time %f\n",c1[i].bpl->time);
bpll[i].speed=c1[i].bpl->speed;
bpll[i].time=c1[i].bpl->time;
Задача для олимпиады для подсчёта занятых мест по времени и скорости, каждого спортсмена, предыдущее но правильно работающее.
guest 08.08.2009 21:53 # 0
memset(&bpll[i].cname,0x20,25);
strcpy(bpll[i].cname,c1[i].bpl->cname);
};
qsort (bpll, cni, sizeof(player),(int (*)(const void *, const void*))compare);
for(int i=0;i<cni;i++)
{
printf("%d %s %f\n",i+1,bpll[i].cname,bpll[i].time);
};
return 0;
};
int
compare (player * arg1, player * arg2)
{
if (arg1->time < arg2->time)
return -1;
if (arg1->time == arg2->time)
return 0;
if (arg1->time > arg2->time)
return 1;
}
guest 11.08.2009 14:30 # −2
guestMumFucker 21.11.2015 12:27 # −1
guestMumFucker 21.11.2015 12:28 # 0
guestMumFucker 21.11.2015 17:13 # 0
guest 21.11.2015 19:11 # 0
guest 12.08.2009 09:20 # 0
как минимум после каждой второй.
но над школьным кодом смеяться грешно.