Jump to content
AprendizC

Tabuada Jogo

Recommended Posts

AprendizC

Como faço para os dois números neste caso n1 e n2 serem diferentes:

-O código:

int gerar(int li,int ls)
{	  
srand(time(NULL));
int gera;
gera=rand()%(10-1+1)+1;
return gera;
}
int main ()
{
int cont=0,n1,n2,r,f,i;



				   n1=gerar(10,1);
n2=gerar(10,1);

r=n1*n2;

for(i=1;i<=10;i=i+1)
{
				printf("%d * %d = ",n1,n2);
scanf("%d",&f);
}  
if(r==f){ cont=cont+1;
printf("Acertou%d\n",cont);}
else{
cont=cont-2;
printf("Errou %d\n",cont);}
system("pause");
return(0);
}

Edited by Rui Carlos
GeSHi, tags

Share this post


Link to post
Share on other sites
HappyHippyHippo
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define XORSWAP(x, y) ((x) != (y) ? ((x) ^= (y), (y) ^= (x), (x) ^= (y)) : 0 )

#define NRESULT 2
#define MIN 1
#define MAX 10

int nrandint(int * result, int nresult, int min, int max) {
   int * values = NULL;
   int i, j;

   if (result == NULL)           return -1; /* parametro inválido */
   if (nresult <= 0)             return -2; /* parametro inválido */
   if (nresult >= max - min + 1) return -3; /* parametro inválido */

   /* alocar memória para o array auxiliar */
   if ((values = malloc(sizeof(int) * (max - min + 1))) == NULL) return -4;

   /* popular o array auxiliar com valores de min até max */
   for (i = 0; i < max - min; i++) values[i] = min + i;

   /* baralhar o array auxiliar */
   srand(time(NULL));
   for (i = 0; i < max - min; i++) {
       j = i + (rand() % (max - min - i));
       XORSWAP(values[i], values[j]);
   }

   /* gravar os nresult primeiros valores */
   memcpy(result, values, sizeof(int) * nresult);

   /* libertar a memória previamente reservada */
   free(values);

   return 0;
}

int main(int argc, char** argv) {
   int values[NRESULT];
   int i;

   nrandint(values, NRESULT, MIN, MAX);

   for (i = 0; i < NRESULT; i++) {
       printf("value %d : %d\n", i, values[i]);
   }

   return 0;
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
AprendizC

if ((values = malloc(sizeof(int) * (max - min + 1))) == NULL) return -4;

Nesta parte do codigo da um erro como invalid conversion from void to int.

E a um outro no memcpy undeclarated.

como posso resolver.

Share this post


Link to post
Share on other sites
HappyHippyHippo

o primeiro problema podes resolver de três maneiras (preferencialmente pela ordem apresentada):

- usas um compilador de C e não um de C++

- dizes ao teu compilador para compilar em C e não em C++

- fazes um cast explícito do tipo de dados

if ((values = (int*) malloc(sizeof(int) * (max - min + 1))) == NULL) return -4;

o segundo necessitas de incluir o seguinte header

#include <string.h>

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.