Enviado em 24/11/2015 - 20:43h
Senhores, sou iniciante em programação e estou com um problema de Falha de Segmentação. O maior problema é que eu não faço a mínima ideia do que causa isso, então não posso evitar.#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 100
typedef struct{
int vet[TAM];
int n;
}tVetInt;
typedef struct{
int mat[100][100];
int nLin;
int nCol;
}tMatInt;
typedef struct{
int pagamento;
int numeroLinhas;
int numeroColunas;
}tDados;
typedef struct{
int cartela[TAM];
int sorteio[TAM];
int n;
}tSementes;
typedef struct{
char nome[31][TAM];
int idade[TAM];
int rg[TAM];
int cpf[TAM];
int n;
int pagamentoParticipante;
int premiacaoParticipante[TAM];
tMatInt cartela[TAM];
}tDadosCandidato;
tDadosCandidato lerCandidato () {
tDadosCandidato d;
int i;
printf ("Nome: ");
scanf (" %[^\n]", d.nome[0]);;
printf ("Idade, RG, CPF: ");
scanf ("%d %d %d", &d.idade[0], &d.rg[0], &d.cpf[0]);
d.n=1;
i=1;
while (d.idade[i-1] !=0){
printf ("Nome: ");
scanf (" %[^\n]", d.nome[i]);
printf ("Idade, RG, CPF: ");
scanf ("%d %d %d", &d.idade[i], &d.rg[i], &d.cpf[i]);
i++;
d.n++;
}
d.n=d.n-1;
return d;
}
tSementes lerSementes (){
int i;
tSementes s;
printf ("Semente da cartela e do sorteio: ");
scanf ("%d %d", &s.cartela[0], &s.sorteio [0]);
s.n=1;
i=1;
while (s.cartela[i-1] !=0){
printf ("Semente da cartela e do sorteio: ");
scanf ("%d %d", &s.cartela[i], &s.sorteio [i]);
i++;
s.n++;
}
s.n=s.n-1;
return s;
}
int checarMatrizIncompleta (int numero, int linhaAtual, int colunaAtual, int p, tDadosCandidato d, tDados t){
int i,
j;
for (i=0; i<linhaAtual+1; i++){
for (j=0; j<t.numeroColunas; j++){
if (d.cartela[p].mat[i][j] == numero){
return 1;
}
}
}
return 0;
}
tDadosCandidato criarCartela (tDadosCandidato d, int seed, tDados t){
int i,
j,
p;
srand (seed);
for (p=0; p<d.n; p++){
for (i=0; i<t.numeroLinhas; i++){
j=0;
while (j<t.numeroColunas){
d.cartela[p].mat[i][j] = (rand()%((t.numeroLinhas*t.numeroColunas) +10) +1);
if (!checarMatrizIncompleta (d.cartela[p].mat[i][j], i, j, p, d, t)){
j++;
}
}
}
}
return d;
}
int main (){
int sementeCartela;
tDadosCandidato d;
tSementes s;
tDados t;
d = lerCandidato ();
printf ("Pagamento, linhas e colunas: ");
scanf ("%d %d %d", &t.pagamento, &t.numeroLinhas, &t.numeroColunas);
s = lerSementes ();
d = criarCartela (d, s.cartela[0], t);
return 0;
}
Customizar a Instalação do Linux Debian com Preseed
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Bora fazer um teste? mbti (18)
criar alias do comando "ls -la" (10)
O que você está ouvindo agora? [2] (195)