3
This code is giving the error Floating point exception (core dumped)
, is just a piece of programming in c, but this error occurs after the printf("\nO Total de apostas foram:%d\n", taposta);
in the main
, then the error is within the function I named right, only I do not find my mistake.
code:
#include<stdio.h>
int tacerto[100];
struct premio {
int valorquina;
int valorquadra;
int valorterno;
};
int apostadores( int apostador[100][5]){
int i, x, a=1, taposta=0;
for (i=0;i<100;i++){
for (x=0;x<5;x++){
apostador[i][x]=0;
}
}
i=0;
while (i<100 && a!=0){
i++;
printf("\tDigite os numeros da sua aposta:\n");
for (x=0;x<5;x++){
scanf("%d", &apostador[i][x]);
}
taposta++;
printf("Gostaria de continuar? Sim-1 / Não-0\n");
scanf("%d", &a);
}
return taposta;
}
void acerto(int sorteio[5], int apostadores[100][5], int taposta){
int i, x, k, z=0;
for (i=0;i<taposta;i++){
for (x=0;x<5;x++){
for (k=0;k<5;k++){
if (apostadores[i][x]==sorteio[k])
z++;
}
}
tacerto[i]=z;
z=0;
}
}
struct premio valorpremio(int apostadores[100])
{
struct premio dinheiro;
int i, z=0.0, n=0.0, o=0.0;
for (i=0;i<100;i++){
if (apostadores[i]==5)
z++;
if (apostadores[i]==4)
n++;
if (apostadores[i]==3)
o++;
}
dinheiro.valorquina=150600/z;
dinheiro.valorquadra=30000/n;
dinheiro.valorterno=20000/o;
return dinheiro;
}
void armazenamento(int valorporapostador[100], int tacerto[100],struct premio valor)
{
int i;
for (i=0;i<100;i++){
if (tacerto[i]==5)
valorporapostador[i]=valor.valorquina;
if (tacerto[i]==4)
valorporapostador[i]=valor.valorquadra;
if (tacerto[i]==3)
valorporapostador[i]=valor.valorterno;
}
}
void indices(int tacerto[100]){
int i;
printf("INDICE DAS PESSOAS QUE GANHARAM A QUINA:");
for (i=0;i<100;i++){
if (tacerto[i]==5)
printf("\n %d \n", i);
}
}
void consulta(int valorapostador[100]){
int a;
printf("\nDigite o seu indice:\n");
scanf("%d", &a);
printf("\n%d\n", valorapostador[a]);
}
int main(){
int apostador[100][5], sorteio[5], taposta, a, valorporapostador[100], h;
struct premio valordopremio;
taposta = apostadores(apostador);
printf("\nO Total de apostas foram:%d\n", taposta);
sorteio[0]=4;
sorteio[1]=10;
sorteio[2]=20;
sorteio[3]=33;
sorteio[4]=37;
acerto(sorteio, apostador, taposta);
for (h=1;h<(taposta=1);h++){
printf("apostador %d: %d ", h, tacerto[h]);
}
valordopremio = valorpremio(tacerto);
printf("VALOR DOS PREMIOS:\nQUINA-%d\nQUADRA-%d\nTERNO-%d\n", valordopremio.valorquina, valordopremio.valorquadra, valordopremio.valorterno);
armazenamento(valorporapostador, tacerto, valordopremio);
indices(tacerto);
printf("Deseja consultar o premio?\n Sim-1 / Nao-0");
scanf("%d", &a);
if (a==1){
consulta(valorporapostador);
}
return 0;
}
Apparently the error is in the function
valorpremio()
– pmg
Post also the functions
valorpremio
,armazenamento
,indices
andconsulta
.– Victor Stafusa
What is the purpose of
for (h=1;h<(taposta=1);h++)
? Thisfor
it’s pretty weird.– Victor Stafusa