-1
But she doesn’t perform and I can’t find the error, could help me?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void){
int *v,n,i,j,k=0,s[20];
do{
printf("\nInforme quantos números de 1 á 20 você irá jogar: ");
scanf("%d", &n);
printf("\n");
if(n<1 || n>20){
printf("Você deve apostar um número entre 1 e 20");
}
}while( n<1|| n>20);
v = (int*) malloc(sizeof(int)*n);
if(v == NULL){
printf("Memória insuficiente");
exit(1);
}
printf("Informe os números da aposta, escolha entre 0 e 100 ");
scanf("%d", &v[i]);
if(v[i]<0 || v[i]>100){
printf("Você deve escolher um número entre 0 e 100\n");
}while(v[i]<0 || v[i]> 100);
printf("\n Você apostou esses número:");
for( i = 0; i <n; i++){
printf("%d \n", v[i]);
}
printf("\n Os números sorteados foram: \n");
srand(time(NULL));
for (i = 0; i<20; i++){
s[i]= rand() % 100 ;
printf("%d\n", s[i]);
}
for(i=0; i<n; i++){
for (j = 0; j<20; j++){
if(v[i] == s[j])
k++;
}
}
printf("Parabéns! Você acertou %d", k);
return 0;
}
I believe that here:
if(v[i]<0 || v[i>100]){
should be:if(v[i]<0 || v[i]>100){
. Missing a loop in the reading of the bet numbers, you use the variablei
that contains memory junk. Note that by drawing the numbers you are allowing repeats to occur eventually.– anonimo
Then edit your question and post the corrected code because we can’t guess how it looked.
– anonimo