rendered paste body// 7/V08I//953/5
//
#include "stdafx.h"
#include "memory.h"
#include "stdio.h"
#include "conio.h"
void alfeladat_1(int *szamok)
{
int i;
printf("Kerem adja be az 52. het lottoszamait!\n");
for(i = 0; i < 5; i++)
{
while(szamok[i] == 0)
{
printf("Kerem az %d. szamot: ", i + 1);
if(1 != scanf("%d", &szamok[i]))
{
printf("Hiba! Egesz szamokat varok!\n");
szamok[i] = 0;
flushall();
continue;
}
if(szamok[i] < 1 || szamok[i] > 90)
{
printf("Hiba! Az [1..90] intervallumban varok szamokat!\n");
szamok[i] = 0;
continue;
}
for(int j = 0; j < i; j++)
{
if(szamok[j] == szamok[i])
{
printf("Hiba! Ez a szam mar volt!\n");
szamok[i] = 0;
continue;
}
}
}
}
}
// 2. alfeladat - rendezés és kiiratás
void alfeladat_2(int *szamok)
{
int h, i, j;
for(j = 0; j < 4; j++)
{
for(i = 4; i > j; i--)
{
if(szamok[i] < szamok[j])
{
h = szamok[i];
szamok[i] = szamok[j];
szamok[j] = h;
}
}
}
printf("\nAz 52. heti szamok novekvo sorrendben: ");
for(i = 0; i < 5; i++)
{
printf("%d%s", szamok[i], (i < 4)?(", "):("\n"));
}
}
// 3. alfeladat - bekérni egy számot [1..51] intervallumban
int alfeladat_3(void)
{
int h = 0;
while(h == 0)
{
printf("Kerek egy egesz szamot az [1..51] intervallumban: ");
if(1 != scanf("%d", &h))
{
flushall();
continue;
}
if(h < 1 || h > 51)
{
h = 0;
continue;
}
}
return h;
}
int read_lotto_dat(int *buffer)
{
int i = 0;
FILE *f = fopen("lottosz.dat", "r");
if(f)
{
while(!feof(f))
{
fscanf(f, "%d %d %d %d %d\n"
,&buffer[i*5]
,&buffer[i*5+1]
,&buffer[i*5+2]
,&buffer[i*5+3]
,&buffer[i*5+4]
);
i++;
}
fclose(f);
}
return i;
}
void alfeladat_4(int *buffer, int n)
{
int i = n - 1;
printf("A(z) %d heti lotto nyeroszamok: %d, %d, %d, %d, %d\n", n
,buffer[i*5]
,buffer[i*5+1]
,buffer[i*5+2]
,buffer[i*5+3]
,buffer[i*5+4]
);
}
void alfeladat_5(int *buffer)
{
int i;
int szamlalo[90];
memset(szamlalo, 0, sizeof(szamlalo));
for(i = 0; i < 51 * 5; i++)
{
szamlalo[buffer[i] - 1]++;
}
i = 0;
while(i < 90 && szamlalo[i] != 0)
{
i++;
}
printf("Van olyan szam, amit egyszer sem huztak ki? ");
if(i < 90)
{
printf("Van\n");
} else {
printf("Nincs\n");
}
}
void alfeladat_6(int *buffer)
{
int h, i, j;
h = 0;
for(j = 0; j < 51; j++)
{
i = 0;
while(i < 5 && !(buffer[(j * 5) + i] % 2))
{
i++;
}
if(i < 5)
{
h++;
}
}
printf("A paratlan szamok elofordulasanak szama: %d", h);
}
void alfeladat_7(int *buffer, int *szamok)
{
int i;
FILE *f = fopen("lotto52.ki", "w+");
memcpy(&buffer[51*5], szamok, sizeof(szamok) * 5);
printf("Mentes...\n");
if(f)
{
for(i = 0; i < 52; i++)
{
fprintf(f, "%d %d %d %d %d\n"
,buffer[i*5]
,buffer[i*5+1]
,buffer[i*5+2]
,buffer[i*5+3]
,buffer[i*5+4]
);
}
fclose(f);
} else {
printf("Hiba! Nem tudtam letrehozni a lotto52.ki allaomanyt.\n");
}
}
void alfeladat_8(int *buffer)
{
int i;
int szamlalo[90];
memset(szamlalo, 0, sizeof(szamlalo));
printf("A 90 darab szam huzasainak szamai, az 52 het soran:\n");
for(i = 0; i < 52 * 5; i++)
{
szamlalo[buffer[i] - 1]++;
}
for(i = 0; i < 90; i++)
{
if(!(i % 15))
{
printf("\n");
}
printf("%2d ", szamlalo[i]);
}
printf("\n");
}
void alfeladat_9(int *buffer, int* primek, int nprim)
{
int h, i, j;
printf("A huzott szamok kozott elo nem fordulo primszamok listaja: ");
h = 0;
for(i = 0; i < nprim; i++)
{
j = 0;
while(j < (52 * 5) && primek[i] != buffer[j])
{
j++;
}
if(j >= (52 * 5))
{
if(h)
{
printf(", ");
}
printf("%d", primek[i]);
h++;
}
}
printf("\n");
}
int main(int argc, char* argv[])
{
int h;
int szamok[5] = {0,0,0,0,0}; // Az 52. het szamai
int primek[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89};
int osszesszam[52][5];
memset(osszesszam, 0, sizeof(osszesszam));
alfeladat_1(szamok);
printf("\n");
alfeladat_2(szamok);
printf("\n");
h = alfeladat_3();
printf("\n");
if(51 != read_lotto_dat((int*)osszesszam))
{
printf("Hiba! lottosz.dat nem talalhato, vagy serult.");
}
alfeladat_4((int*)osszesszam, h);
printf("\n");
alfeladat_5((int*)osszesszam);
printf("\n");
alfeladat_6((int*)osszesszam);
printf("\n");
alfeladat_7((int*)osszesszam, szamok);
printf("\n");
alfeladat_8((int*)osszesszam);
printf("\n");
alfeladat_9((int*)osszesszam, primek, sizeof(primek)/sizeof(primek[0]));
printf("\n");
printf("Nyomj egy billentyut a befejezeshez...");
getch();
return 0;
}