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

fpinto

totoloto

8 mensagens neste tópico


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

#define nums 49
#define min_aposta 6
#define num_lin 7

void inic_random();
void inic(int *v[nums]);
int ler_ns_apostar();
void gerar(int *v, int n);
void apresentar (int res[]);



void inic_ramdon()
{
long ultime;
time(&ultime);
srand((unsigned) ultime );
}

void inic(int v[])
{
int i;
for(i=0 ; i<nums ; i++ )
v[i]=0;
}


int ler_ns_apostar()
{
int n;
do
{
printf("quantos keres apostar ( 0 - terminar ): ");
scanf("%d",&n);
}
while ((n<min_aposta || n> nums) && n!=0);
return n;
}


void gerar(int *v, int n)
int i, indice;
for (i=1 ; i<=n ; i++)
{ indice = rand()%nums;
if (v[indice]==0)
v[indece]=1;
else
i--;
}
}

void apresentar(int res[])
{
int i;
for(i=1;i<nums;i++)
{
if (Res{i]==0)
printf(" %2d",i+1);

else printf(" XX");
if((i+1)%num_lin==0)putchar('\n');
}
putchar('\n');
}
main()
{

int vector[nums];

int n_nums;

inic_ramdon();
while(1)
{
inic(vector);
if((n_nums = ler_ns_apostar())==0) break;
gerar(vector,n_nums);
apresentar(vector);
}
}

com o seguinte programa da erro na linha 46 o que nao fas sentido a linha 46 tem: int i, indice;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Será que custa assim tanto identar correctamente o código?

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

#define nums 49
#define min_aposta 6
#define num_lin 7

void inic_random()
{
    long ultime;
    time(&ultime);
    srand((unsigned) ultime);
}

void inic(int v[])
{
    int i;
    for (i = 0; i < nums; i++)
    {
        v[i] = 0;
    }
}


int ler_ns_apostar()
{
    int n;
    do
    {
    printf("quantos keres apostar ( 0 - terminar ): ");
    scanf("%d", &n);
    }
    while ((n < min_aposta || n > nums) && n != 0);
    
    return n;
}


void gerar(int *v, int n)
{
    int i, indice;

    for (i = 1; i <= n; i++)
    {
    	indice = rand() % nums;

    	if (v[indice] == 0) 
    	{
        v[indice] = 1;
    }
    else
    {
        i--;
    }
    }
}

void apresentar(int res[])
{
    int i;
    for (i = 1; i < nums; i++)
    {
    	if (res[i] == 0) 
    	{
        printf(" %2d", i + 1);
    }
    else
    {
    	    printf(" XX");
    
    	    if ((i + 1) % num_lin == 0) 
    	    {
        		putchar('\n');
    	    }
}

    putchar('\n');
    }
}

int main()
{

    int vector[nums];

    int n_nums;

    inic_random();
    
    while (1) 
    {
    inic(vector);
    
    if ((n_nums = ler_ns_apostar()) == 0)
        break;

    gerar(vector, n_nums);
    	apresentar(vector);
    }

    return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

onde ta a diferenca?

Epa, no teu código original tens muitos nomes trocados, tipo, em vez de inic_random tens inic_ramdon e outros erros do género.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se declaras as funções antes da função main() não precisas de fazer alusão às mesmas( não precisas de declarar os cabeçalhos ).

E convinha referires de onde veio o código... Livro do Damas...pág. 219. :ipool:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O erro no codigo que meteste ai e' na linha 45, falta-te uma chaveta a seguir ao nome da função

void gerar(int * a, int ;) {

  co'digo ;)

}

a versão identada do Triton ja' tem esse erro corrigido ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Gostaria de acrescentar uma coisa ao que o tsenart disse sobre os cabeçalhos:

Convém sempre colocares os headers num ficheiro .h e depois fazeres um include do ficheiro, porque num programa maior, com vários ficheiros, não tens problemas em saber que funções já declaraste.

Para fazeres o include de um ficheiro .h, basta:

#include "ficheiro.h"

Cumps

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