Перейти к содержимому

Фото
- - - - -

Идет Экзамен


  • Вы не можете создать новую тему
  • Please log in to reply
5 ответов в этой теме

#1 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 21 Май 2007 - 13:21

Народ. Идет экзамен, Вот задание


выручайте, у нас тут целая группа:)
  • 0

#2 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 21 Май 2007 - 14:31

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
char hw[500];
int beg;
int end;
int time;
double len;

} rem;

double dl(char *,char *);
int cmp(const void *,const void *);
int npaev(char*);
int paevad(char *);

int main(void)
{
char ar[1001],*p,*p2;
FILE *fin;
int i,n;
rem *mas[1000];
if((fin=fopen("TeeRemont.txt","r"))==NULL)
{
fprintf(stderr,"No input file found.\n");
getchar();
return 1;
}
for(n=0;fgets(ar,1000,fin)!=NULL&&ar[0]!='\n';n++)
{
mas[n]=new(rem);
strcpy(mas[n]->hw,strtok(ar,"\t"));
p=strtok(NULL,"\t");
p2=strchr(p,'-')+1;
mas[n]->beg=paevad(p);
mas[n]->end=paevad(p2);
mas[n]->time=npaev(p2)-npaev(p);
p=strtok(NULL,"\t");
p2=strchr(p,'-')+1;

mas[n]->len=dl(p,p2);
}
qsort(mas,n,sizeof(rem*),cmp);
for(i=0;i<n;i++)
{
printf("%s, alates %02d/%02d/%04d, %d paeva, %.2lf\n",
mas[i]->hw,mas[i]->beg%100,(mas[i]->beg/100)%100,
mas[i]->beg/10000,mas[i]->time,mas[i]->len);
}
/*
printf("%d\n",npaev("29/06/2007")-npaev("11/04/2007"));
*/
getchar();
return 0;
}

int npaev(char *str)
{
static const int ar[]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,d,m,y;
char *p,*p2;
d=strtol(str,&p,10);
m=strtol(p+1,&p2,10);
//y=strtol(p2+1,&p,10);
for(i=0;i<m-1;i++)
d+=ar[i];
return d;
}

int paevad(char *B)
{
int beg;
char *p,*p2;
beg=strtol(b,&p,10);
beg+=strtol(p+1,&p2,10)*100;
beg+=strtol(p2+1,&p,10)*10000;
return beg;
}

int cmp(const void *a,const void *B)
{
return ((*(rem**)a)->beg)-((*(rem**)B)->beg);
}

double dl(char *b,char *e)
{
return strtod(e,NULL)-strtod(b,NULL);
}

помогите разобраться с данной прогой, это на 4, что где что означает в кратце
  • 0

#3 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 21 Май 2007 - 14:51

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

int npaev(char*);




int main(void){
char fail[14]="Teeremont.txt"; // nazvanije faila
char rida[200],*mantee,*kuup1,*kuup2,*kaug1,*kaug2,*kuupcpy; //strka faila i ejo kuski
float kaugus1, kaugus2,kaugus;
int kestvus=0;
FILE *fp;
fp=fopen(fail,"r");
if(!fp){printf ("Faili avamine ebaonnestus\n");
getch();return 1;}





while(1){ //4tenije stroki faila i ee obrabotka(nahozdenije datq na4ala, konca, etc...)
fgets(rida,sizeof(rida), fp);
mantee=strtok(rida," ");
kuup1=strtok(NULL," - ");
kuup2=strtok(NULL," ");
kaug1=strtok(NULL," - ");
kaug2=strtok(NULL,"\n");
kuup1=strtok(kuup1," ");
strcpy(kuupcpy,kuup1);
kuup2=strtok(kuup2," -");
kaug1=strtok(kaug1," ");
kaug2=strtok(kaug2," - ");
kaugus1=atof(kaug1);
kaugus2=atof(kaug2);
kaugus=kaugus2-kaugus1;
kestvus=npaev(kuup2)-npaev(kuup1); //vqzov funkcii npaev, kotoraja vqdajot koli4estvo dnej s na4ala goda
printf("Mantee: %s, alates %s, %d paeva, %2.2f kilometrit\n", mantee,kuupcpy,kestvus,kaugus); // vqvod vsej informacii
if(feof(fp))break;
}
fclose(fp);
printf("\nVajuta suvalisele klahvile...");
getch();
return 0;
}




int npaev(char *kuup1){
int aasta1,kuu1,paev1;
int kuud[]={31,28,31,30,31,30,31,31,30,31,30,31}; //dlinnq mesjacev
int kuupPaevas=0;
int i=0, kestvus=0;
paev1=atoi(strtok(kuup1,"/")); //obrabotka datq(otrezanije dnja, mesjaca, goda)
kuu1=atoi(strtok(NULL,"/"));
aasta1=atoi(strtok(NULL,""));
for(i=0;i<kuu1-1;i++){ //pods4et koli4estva dnej
kuupPaevas=kuupPaevas+kuud[i];
}
kuupPaevas=kuupPaevas+paev1;
return kuupPaevas; // vozvdashjajet koli4estvo dnej
}



вот еще одна чето не пашет, найдите ошибку)

спасибо хоть за внимание :D
  • 0

#4 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 22 Май 2007 - 16:36

Когда сессия заканчивается?
И когда началась? :)
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#5 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 22 Май 2007 - 20:48

CyBurglar, хз :D
  • 0

#6 satan

satan
  • Пользователь
  • 340 сообщений
  • Откуда:tln

Отправлено 31 Май 2007 - 00:07

влад, я аж испугался что это ты сам всё написал ))
  • 0