rendered paste body#include <stdio.h>#include <stdlib.h>#include <time.h>#define NUM_MAX 25#define MAX 50typedef struct { int numeros[NUM_MAX];} Tnumeros;int main(){ FILE *cart; Tnumeros *cartela; int num_cart, num_sort, num_ger, i, j, k, *c, cart_camp, FLAG = 0, ps = 0; srand(time(NULL)); printf ("Digite a quantidade de cartelas desejadas: "); scanf ("%d", &num_cart); cartela = malloc(num_cart * sizeof(int)); /* Inicia as cartelas */ for (i = 0; i < num_cart; i++) { for (j = 0; j < NUM_MAX; j++) { cartela[i].numeros[j] = 0; } } /* Gera as cartelas */ for (i = 0; i < num_cart; i++) { ps = 0; FLAG = 0; do { num_ger = 1+rand() % MAX; /* Verifica se ha numeros repetidos na mesma cartela */ for (j = 0; j < NUM_MAX; j++) { if (cartela[i].numeros[j] == num_ger) break; else { cartela[i].numeros[ps] = num_ger; FLAG++; ps++; break; } } } while (FLAG < NUM_MAX); } /* Abre o arquivo Cartelas.DAT */ if (!(fopen ("CARTELAS.DAT", "w+"))) { printf ("Ocorreu um erro na abertura do arquivo!\n"); exit (1); } /* Apresentação das cartelas para o usuario */ for (i = 0; i < num_cart; i++) { printf ("Cartela %d\n", i + 1); for (j = 0; j < NUM_MAX; j++) { printf ("%2d", cartela[i].numeros[j]); if ((j == 4) || (j == 9) || (j == 14) || (j == 19) || (j == 24)) printf ("\n"); else printf (" "); } printf ("\n----------------\n"); } fclose (cart); return 0;}