Raffle for registered users

Good afternoon, I created a record of a lecture, it is ready, but I would like to put a lottery for some people who are registered ...

I would like help in this part, The raffle should be like this: sort with the number of rows and chairs of the people who registered but only get who registered, because it could be that some 50 people registered and the other 50 vacancies did not, so I do not want pick up the empty place, but who is registered there.

I tried to do but I still can not find a solution to that and I need help.

include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

//inicializacao de todas as variaveis.
SYSTEMTIME tempo;
char nome[100][50], email[100][50], cpf[100][50];
int cadeiras[10][10];
int i=10, j=10, k[100], n=0, fileira[100], assento[100], cont=1;
int op, op2, categoria;
void cadastro();
void inicializa(int cadeiras[10][10]);
void legenda();
void mostrarPainel(int cadeiras[10][10]);
void ticket();
void lista();
void sorteio();

void sorteio(){
}
//inicia os valores da matriz responsavel pelos assentos.
void inicializa(int cadeiras[10][10]){
for(i=0; i<11; i++){
for(j=0; j<11; j++){
cadeiras[i][j]='-';
}
}
}
//apresenta o cadastro para o usuario colocar as informações na tela.
void cadastro(){
printf("\nNome: ");
fflush(stdin);
scanf("%[^\n]s",nome[n]);
printf("\nEmail: ");
fflush(stdin);
scanf("%[^\n]s",email[n]);
printf("\nCPF: ");
fflush(stdin);
scanf("%[^\n]s",cpf[n]);
k[n]=1;
}
//apresenta a legenda da matriz.
void legenda(){
printf("\n\n\n - -Livre E-Ocupado R-Reservado\n\n");
}
//apresenta as informações que o usuario deu e queira.
void ticket(){
system("cls");
printf("\nSuas informações do cadastro:\n");
printf("\n\nNome: %s\n\nEmail: %s\n\nCPF: %s\n\nFileira: %d Assento: %d", nome[n], email[n], cpf[n], fileira[n], assento[n]);
GetLocalTime(&tempo);
printf("\n\nData Atual %d/%d/%d", tempo.wDay, tempo.wMonth, tempo.wYear);//imprime dia,mes,ano
printf("\n\nHora: %d Minutos: %d", tempo.wHour, tempo.wMinute);//imprime hora e minutos
n++;
}
//apresenta a lista de todas as pessoas que cadastraram.
void lista(){
system("cls");
printf("\nLista de participantes cadastrados:\n");
for(n=0; n<100; n++){
if(k[n]>0){
printf("\n\nNome: %s\n\nEmail: %s\n\nCPF: %s\n\nFileira: %d Assento: %d\t\n", nome[n], email[n], cpf[n], fileira[n], assento[n]);
}else{
break;
}
}
}
//apresenta a matriz para a pessoa escolher seu assento.
void mostrarPainel(int cadeiras[10][10]){

int i,j;
printf("\n\n %c PAINEL DE OCUPACOES %c\n\n",16,17);
printf(" ");

for(i=1;i<=10;i++)
printf("%d ",i);

for(i=1;i<=10;i++){
printf("\n\n %d",i);
for(j=1;j<=10;j++)
printf(" (%c)",cadeiras[i][j]);
}
//apresenta o menu na tela
legenda();
}
//ler a linha oferecida pelo usuario
int linhaX(){
int i;
printf(" Fileira: "); scanf("%d",&i);
if(i>10)
{
printf("\t\n Esta cadeira nao existe!!! ");
}
return i;
}
//ler a coluna oferecida pelo usuario
int colunaY(){
int j;
printf(" Assento: "); scanf("%d",&j);
if(j>10)
{
printf("\t\n Esta cadeira nao existe!!! ");
}
return j;
}
//tudo que apresenta na tela ate o fim do main.
int main(void) {

inicializa(cadeiras);
do{
system("cls");//limpa a ultima coisa na tela
printf("\n\n %c TEATRO UNIP %c\n\n",16,17);
printf("\nPalestra: Direitos Humanos");
printf("\nData: 15/12/2018");
printf("\nInicio: 9:00 \nTermino: 12:00");
printf("\n\n\n 1 - Cadastro\n 2 - Lista\n 3 - Sorteio\n");//um pequeno menu de opções
scanf("%d", &op2);

switch(op2){
case 1:
system("cls");
cadastro();

//pergunta ao usuario o tipo de pessoa e seu assento especifico.
system("cls");
printf("\nQual sua categoria?\n");
printf("\nDigite 1 para aluno \nDigite 2 para professor \nDigite 3 para convidado \nDigite 4 para pessoa com necessidade especial");
printf("\nCategoria: ");
scanf("%d", &categoria);
//caso o usuario digite um desses numeros ira fazer uma dessas funçoes.
switch(categoria){
case 1:
system("cls");
//este cont ira contar as pessoas do tipo aluno.
cont;
mostrarPainel(cadeiras);
i = linhaX();
j = colunaY();
if(cont>75){
printf("\nNao ha mais vagas para pessoas do tipo aluno!\n");
}else{
if(i<3){
printf("\n As duas primeiras fileiras ja estão reservadas a professores e convidados!");
printf("\n Por favor escolha outras disponiveis!\n");
i = 0;
j = 0;
i = linhaX();
j = colunaY();
}
if(cadeiras[i][j]=='-'){
cadeiras[i][j] = 'R';
printf("\n\n RESERVA EFETIVADA COM SUCESSO !!");
}
else if (cadeiras[i][j]=='E')
printf("\n\n CADEIRA JA OCUPADA!! ESCOLHA OUTRA !!\n\n");
else if(cadeiras[i][j]=='R')
printf("\n\n CADEIRA JA RESERVADA !! ESCOLHA OUTRA !!\n\n");
}
cont++;
fileira[n] = i;
assento[n] = j;

getch();
break;
case 2: case 3:
system("cls");
//este cont ira contar as pessoas do tipo professor/convidado
cont;
mostrarPainel(cadeiras);
i = linhaX();
j = colunaY();
if(cont>20){
printf("\nNao ha mais vagas para pessoas do tipo professor/convidado!\n");
}else{
if(i>2){
printf("\n Sua categoria esta determinada as duas primeiras fileiras!");
printf("\n Por favor escolha entre elas novamente!\n");
i = 0;
j = 0;
i = linhaX();
j = colunaY();
}
if(cadeiras[i][j]=='-'){
cadeiras[i][j] = 'R';
printf("\n\n RESERVA EFETIVADA COM SUCESSO !!");
}
else if (cadeiras[i][j]=='E')
printf("\n\n CADEIRA JA OCUPADA!! ESCOLHA OUTRA !!\n\n");
else if(cadeiras[i][j]=='R')
printf("\n\n CADEIRA JA RESERVADA !! ESCOLHA OUTRA !!\n\n");
}
cont++;
fileira[n] = i;
assento[n] = j;
getch();
break;
case 4:
system("cls");
cont; //vai contar o numero de pessoas especiais.
mostrarPainel(cadeiras);
i = linhaX();
j = colunaY();
//5 das 100 cadeiras sao resevadas a essas pessoas pois sao 5% especialmente a elas.
if(cont>5){
printf("\nNao ha mais vagas para pessoas do tipo especial!\n");
}else{
if(i<3){
printf("\n As duas primeiras fileiras ja estão reservadas a professores e convidados!");
printf("\n Por favor escolha outras disponiveis!\n");
i = 0;
j = 0;
i = linhaX();
j = colunaY();
}
if(cadeiras[i][j]=='-'){
cadeiras[i][j] = 'E';
printf("\n\n RESERVA EFETIVADA COM SUCESSO !!");
}
else if (cadeiras[i][j]=='E')
printf("\n\n CADEIRA JA OCUPADA!! ESCOLHA OUTRA !!\n\n");
else if(cadeiras[i][j]=='R')
printf("\n\n CADEIRA JA RESERVADA !! ESCOLHA OUTRA !!\n\n");
}
cont++;
fileira[n] = i;
assento[n] = j;
getch();
break;
}
ticket();
break;
case 2:
lista();
break;
}
printf("\n\nDIGITE 0 PARA SAIR DO PROGRAMA OU OUTRO VALOR PARA VOLTAR AO MENU: ");
scanf("%d", &op);
//condicao para continuar o programa.
}while(op!=0);

return 0;
}
if the position is empty, draw again

or

create another list with the register positions and draw from there.


ps:
learn to minimize your code sample, include only the relevant parts (but always enough to reproduce your issue)
for example, you could remove the menu, the pretty output and hardcode the input
Topic archived. No new replies allowed.