• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gurzi

passing `long int' to argument 1 of `inic(long int *, long int *)' lacks a cast

22 mensagens neste tópico

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int numeros[49];
int numero_gerado[4];


void inic(int nu[49],int gerador[4])
{
  int i,j;
   for(i=1;i<=50;i++)
     nu[i-1] = i;
   for(j=1;j<=5;j++)
      gerador[j] = j;
}
void mostra()
{
  int i;
  for (i=0;i<=50;i++)
   {
     if (!(i%7))
       putchar('n');
     printf("%d ", i);
    }
}
void aleatorio(int s[4])
{
   int j;
   for (j=1;j<=5;j++)
   {
    time(numero_gerado[j]);
    srand((unsigned int)numero_gerado[j]);
   }
}
main()
{
     int i,j;

     inic(numeros,numero_gerado);
     printf("Benvindo ao Jogo de Apostas do EuroEcol\n\n");
     mostra();
     getchar();
     aleatorio(numero_gerado);
     srand((unsigned int)aleatorio);
     for (i=1;i<=50;i++)
        for (j=1;j<=5;j++)
         {
          if(numeros[i]== numero_gerado[4])
            printf("XX");
          else
            printf("%d",numeros[i]);
          }
      system("PAUSE");
  }




33 d:\docume~1\tiagop~1\osmeus~1\exerci~1\testes.cpp

passing `long int' to argument 1 of `inic(long int *, long int *)' lacks a cast

estou aqui um pouco aterefado :P :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exceptuando na função aleatorio e na main falta-te sempre um } a fechar as funções! :P

EDIT:

Falta-te tb em "printf("%d ", i)" e em "time(numero_gerado[ i ])" os ";" no fim!

No aleatório falta-te declarar o i... etc :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim porque eu depois comecei a fazer umas modifcaçoes e este era o source inicial entao como o outro n deu pus aki este e eskecime de as fechar.. mas akele erro dá sempre

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu editei o meu 1º e n sei se chegaste a ver o q escrevi depois!

Repara esses erros e coloca aí o codigo depois se ainda der problema!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Outro erro teu nessa mm função é que declaras o i=0 e que ele vai até 50 (i<=50)... ora o vector "nu[ 49]" não tem esse numero de casas!

Qd declares algo como abc[1] ele aloca espaço na memora para 2 casas... que são a abc[0] e a abc[1]! :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não, pode ser de 1 a 50 (sao 50 algarismos) visto que a var variavel[49] é igual a 50 algorismos, visto que o indice começa em 0.

logo 49 +1 = 50 :D

a cena do lack a cast é que me está a partir a cabeça

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok eu tinha dito mal mas tu tb estás a dizer... qd fazes var[49] declaras realmente 50 casas... mas essas casas são do 0 ao 49... o 50 já n existe! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sim mas aquilo é um for para atribuir de 1 a 50 o valor á var que é var[49] só que o 1 vai ser atribuido ao var[0] por isso no fim vai ser igual

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok, portanto n poderás fazer isto, certo?

for(i=1;i<=50;i++)

    nu[i ] = i;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois :D

mas posso nu[i-1] = i :D

Nem mais! :D

e acena do erro ja descobriste?

Já te pedi para actualizares o codigo todo :$ Eu sou mto de descubrir a testar e aquilo assim dá-me 10 erros! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A mim na função aleatorio dá este:

32 C:\Documents and Settings\Bruno\Desktop\Untitled1.cpp invalid conversion from `int*' to `time_t*'

Do q percebi do teu codigo acho que tens outro erro:

  for (j=1;j<=5;j++)

    time(numero_gerado[j]);

    srand((unsigned int)numero_gerado[j]);

Se queres q o time e o srand estejam ambos no ciclo for precisas de fazer um bloco :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok isso ja foi corrigido , é exactamente esse o erro que me dá :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O time recebe um endereço de uma variavel do tipo time_t... exemplo:

time_t t1;

time(&t1);

:D Ja agora dá uma olhadela pelas guardas dos outros ciclos for que tens no teu codigo porque têm erros como aqueles que já falamos! :D

Declaration:

    time_t time(time_t *timer);

Calculates the current calender time and encodes it into time_t format.

The time_t value is returned. If timer is not a null pointer, then the value is also stored into the object it points to. If the time is unavailable, then -1 is returned.

(fonte)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao sei ondek o compilador vai buskar a definicao de long int* na funcao inic, de kk maneira, experimenta mudares o cabecalho da funcao, em vez de

void inic(int nu[49],int gerador[4]){ ... }

para

void inic(int* nu, int* gerador)

hasta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

explica o objectivo do teu código.

Para que precisas de um array com 4 posiçoes para gerar numeros aleatórios?

eu acho que estas a trabalhar mal a cena do srand e do time mas sem saber o que queres nao posso fazer mais comentários.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora