Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- #include<string.h>
- typedef struct Lista {
- int elso;
- int masodik;
- int harmadik;
- int negyedik;
- int otodik;
- struct Lista* KOV;
- } Listaelem;
- void beolvas(char f[], Listaelem* ELSO, int* sorsz);
- void elsoelem(Listaelem* ELSO, char buf[]);
- void vegere(Listaelem* ELSO, char buf[]);
- void egeszlistatorlese(Listaelem* ELSO);
- int* lottohuzas();
- void talalatok(Listaelem* ELSO, int szamok[]);
- int main(int argc, char* argv[]) {
- Listaelem* ELSO = (Listaelem *)malloc(sizeof(Listaelem));
- int i = 0;
- int elemszam = 5;
- int* szamok = (int *)malloc(sizeof(int) * elemszam);
- int sorsz = 0;
- if (argc >= 2) {
- FILE* file = fopen(argv[1], "r");
- if (!file) {
- printf("A megadott fajl (%s) nem letezik!\n", argv[1]);
- getchar();
- return EXIT_FAILURE;
- }
- else {
- beolvas(argv[1], ELSO, &sorsz);
- printf("A fogadasok szama: %d db.\n\n", sorsz);
- szamok = lottohuzas();
- talalatok(ELSO, szamok);
- free(szamok);
- egeszlistatorlese(ELSO);
- getchar();
- }
- return EXIT_SUCCESS;
- }
- else {
- printf("Keves parameter!\n");
- printf("Adja meg a fajl neve utan parameterkent a ""lotto.txt"" szovegfajlt!\n");
- printf("Pelda: ConsoleApplication4.exe lotto.txt\n");
- getchar();
- return EXIT_FAILURE;
- }
- }
- void beolvas(char f[], Listaelem* ELSO, int* sorsz) {
- FILE* fp = fopen(f, "r");
- char buffer[20] = "\0";
- int hossz;
- int futas = 0;
- int db = 0;
- while (fgets(buffer, sizeof(buffer), fp) != NULL) {
- hossz = strlen(buffer) - 1;
- if (buffer[hossz] == '\n')
- buffer[hossz] = '\0';
- if (futas == 0) {
- elsoelem(ELSO, buffer);
- futas++;
- }
- else {
- vegere(ELSO, buffer);
- }
- db++;
- }
- fclose(fp);
- *sorsz = db;
- }
- void elsoelem(Listaelem* ELSO, char buf[]) {
- Listaelem* AKT = ELSO;
- char* token;
- int futas = 0;
- token = strtok(buf, "\t");
- while (token != NULL) {
- if (futas == 0) {
- AKT->elso = atoi(token);
- futas++;
- }
- else if (futas == 1) {
- AKT->masodik = atoi(token);
- futas++;
- }
- else if (futas == 2) {
- AKT->harmadik = atoi(token);
- futas++;
- }
- else if (futas == 3) {
- AKT->negyedik = atoi(token);
- futas++;
- }
- else {
- AKT->otodik = atoi(token);
- AKT->KOV = NULL;
- }
- token = strtok(NULL, "\t");
- }
- }
- void vegere(Listaelem* ELSO, char buf[]) {
- Listaelem* AKT = ELSO;
- Listaelem* ELOZO = NULL;
- char* token;
- int futas = 0;
- while (AKT != NULL) {
- ELOZO = AKT;
- AKT = AKT->KOV;
- }
- ELOZO->KOV = (Listaelem *)malloc(sizeof(Listaelem));
- AKT = ELOZO->KOV;
- token = strtok(buf, "\t");
- while (token != NULL) {
- if (futas == 0) {
- AKT->elso = atoi(token);
- futas++;
- }
- else if (futas == 1) {
- AKT->masodik = atoi(token);
- futas++;
- }
- else if (futas == 2) {
- AKT->harmadik = atoi(token);
- futas++;
- }
- else if (futas == 3) {
- AKT->negyedik = atoi(token);
- futas++;
- }
- else {
- AKT->otodik = atoi(token);
- AKT->KOV = NULL;
- }
- token = strtok(NULL, "\t");
- }
- }
- void talalatok(Listaelem* ELSO, int* szamok) {
- Listaelem* AKT = ELSO;
- int* talalattomb = (int *)calloc(5, sizeof(int));
- int talalat = 0;
- int i;
- int j = 0;
- while (AKT != NULL) {
- for (i = 0; i < 5; i++) {
- if (AKT->elso == szamok[i])
- talalat++;
- if (AKT->masodik == szamok[i])
- talalat++;
- if (AKT->harmadik == szamok[i])
- talalat++;
- if (AKT->negyedik == szamok[i])
- talalat++;
- if (AKT->otodik == szamok[i])
- talalat++;
- }
- talalattomb[j] = talalat;
- talalat = 0;
- j++;
- AKT = AKT->KOV;
- }
- i = 0;
- for (i; i < 5; i++)
- printf("A %d talalatos szelvenyek szama: [%d]\n", i + 1, talalattomb[i]);
- }
- void egeszlistatorlese(Listaelem* ELSO) {
- Listaelem* tmp;
- Listaelem* AKT = ELSO;
- while (AKT) {
- tmp = AKT;
- AKT = AKT->KOV;
- free(tmp);
- }
- }
- int* lottohuzas() {
- int elemszam = 5;
- int* szamok = (int *)malloc(sizeof(int) * elemszam);
- int i = 0;
- int j = 0;
- int vege = 0;
- int kulonindex = 1;
- int ok = 1;
- int r;
- srand(time(NULL));
- for (i = 0; i < elemszam; i++)
- szamok[i] = -1;
- r = ((rand() % 90) + 1);
- do {
- r = ((rand() % 90) + 1);
- if (!j)
- szamok[0] = r;
- else {
- for (i = 0; i < elemszam && ok; i++)
- if (szamok[i] == r)
- ok = 0;
- if (ok)
- szamok[kulonindex++] = r;
- if (kulonindex == elemszam)
- vege = 1;
- }
- j++;
- ok = 1;
- } while (!vege);
- i = 0;
- for (i; i < 5; i++)
- printf("A %d. szam: %d\n", i + 1, szamok[i]);
- return szamok;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement