All pastes #13514 Raw Edit

Miscellany

public text v1 · immutable
#13514 ·published 2005-06-06 11:48 UTC
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;
}