Welcome, guest! Login / Register - Why register?
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 C by STom ( 14 years ago )
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

#define MAX 128
#define UGRAS 5
#define MINUGRAS 1.5
#define MAXUGRAS 2.5
#define MAXROSSZUGRAS 2

/* Sor beolvasasa */
int getline(char s[], int lim) {
    int i;
    char c;
    for(i=0;i<lim && (c=getchar())!='\n' && c!=EOF;++i)s[i]=c;
    if(c == EOF) {
     return -1;
    }
    s[i]='\0';
    while(c!='\n'&& c!=EOF)c=getchar();
    return i;
}

/* Space-k es Tabok eltavolitasa elejerol es vegerol */
void trim(char s[]) {
 int i=0,j;
 while((s[i]==' ')||(s[i]=='\t')) {
  i++;
 }
 if(i>0) {
  for(j=0;j<strlen(s);j++) {
   s[j]=s[j+i];
  }
 s[j]='\0';
 }

 i=strlen(s)-1;
 while((s[i]==' ')||(s[i]=='\t')) {
  i--;
 }
 if(i<(strlen(s)-1)) {
  s[i+1]='\0';
 }
}

int lebeg(char s[]){
    int i=0, kezd;
    while(isspace(s[i])) ++i;
    if(s[i]=='+'||s[i]=='-') ++i;
    kezd=i;
    while(isdigit(s[i])) ++i;
    if(s[i]=='.') ++i;
    while(isdigit(s[i])) ++i;
    if(i==kezd||kezd+1==i&&s[kezd]=='.') return 0;
    if(toupper(s[i])=='E'){
    ++i;
    if(s[i]=='+'||s[i]=='-')++i;
    if(!isdigit(s[i])) return 0;
    while(isdigit(s[i])) ++i;}
    if(isspace(s[i])||!s[i]) return 1;
    else return 0;
}

int rendez(double r[], int db) {
 int i,j;
 double tmpR = 0.;
 
 for (i = 0; i < db; ++i) {
  for(j = i+1; j < db; ++j) {
   if(r[i] < r[j]) {
    tmpR = r[i];
    r[i] = r[j];
    r[j] = tmpR;
   }
  }
 }
}

double atlag(double szam, int db) {
 if(db == 0) {
  return 0.;
 } else {
  return szam / (double)db;
 }
}

main (void) {
 int i, j,ok, vege=0, legjobbV=0, db=0, ugras, sor, rosszU=0, rosszUperV, hanyLegjobb;
 double ugrasok[UGRAS], tmpUgras, osszeg=0., legjobbU=0.;
 char tmp[MAX+1]; 
 
 while(!vege) {
  db++;
  ugras = 1;
  rosszUperV = 0;
  ok = 0;
  printf("Kerem adja meg a(z) %d. versenyzo eredmenyeit.\n", db);
  printf("---------------------------------------------\n\n");
  while(!ok) {
   if(rosszUperV <= 2) {
    printf("Kerem adja meg a(z) %d. ugras eredmenyet:\n", ugras);
    sor = getline(tmp, MAX);
    if(!sor) {
     if(ugras == 1) {
      vege = 1;
      db--;
     }
     ok = 1;
    } else if(sor > MAX-1) {
     printf("Tul sok karaktert adott meg.\n");
    } else {
     trim(tmp);
     if(!lebeg(tmp)) {
      printf("Nem valos szamot adott meg.\n");
     } else {
      tmpUgras = atof(tmp);
      if(tmpUgras == 0.) {
       rosszU++;
       rosszUperV++;
       ugrasok[ugras-1] = tmpUgras;
       if(rosszUperV == MAXROSSZUGRAS+1) {
        ok = 1;
       }
       ugras++;
      } else if(tmpUgras < MINUGRAS || tmpUgras > MAXUGRAS) {
       printf("Az ugrasnak 1.5 es 2.5 kozott kell lennie.\n");
      } else {
       ugrasok[ugras-1] = tmpUgras;
       osszeg += tmpUgras;
       if(legjobbU < tmpUgras) {
        legjobbU = tmpUgras;
        legjobbV = db;
       }
       if(ugras == 5) {
        ok = 1;
       }
       ugras++;
      }
     }
    } 
   } else {
    printf("Ez a versenyzo kizarasra kerult.\n\n");
    ok = 1;
   }
  }
  if(!vege) {
   if(rosszUperV <= MAXROSSZUGRAS) {
    ugras--;
    if(rosszUperV < ugras) {
     rendez(ugrasok, ugras);
     if(ugras < 3) {
      hanyLegjobb = ugras;
     } else {
      hanyLegjobb = 3;
     }
     printf ("\nAz %d. versenyzo legjobb %d ervenyes eredmenye:\n\n",db, hanyLegjobb - rosszUperV);
     j=1;
     for (i=0;i<hanyLegjobb;++i) {
      if(ugrasok[i] != 0) {
       printf("%d.: %.2f\n", j, ugrasok[i]);
       ++j; 
      }
     }
     printf("\nErvenytelen ugrasok szama: %d db.\n", rosszUperV);
     printf("------------------------------------\n\n");
    } else {
     printf ("A versenyzonek nem volt ervenyes ugrasa.\n\n");
    }
   } else {
    printf("\nA versenyzo kizarasra kerult.\n");
   }
  }
 }
 if(db > 0) {
  if(db != rosszU) {
   printf("A program befejezte az adatok bekereset, osszesitesek:\n");
   printf("------------------------------------------------------\n\n");
   printf("Az ugrasok atlaga: %.2f\n", atlag(osszeg, db));
   printf("A legjobb ugrast a(z) %d. versenyzo hajtotta vegre, eredmenye: %.2f\n", legjobbV, legjobbU);
   printf("Az ervenytelen ugrasok szama: %d\n", rosszU);
  } else {
   printf("Nem volt ervenyes ugras\n");
  }
 } else {
  printf("Nincsenek versenyzok.\n");
 }
}

 

Revise this Paste

Your Name: Code Language: