Boa noite, eu fiz o exercicio proposto, e está quase funcionando 100%, porém está com um bug na hora calcular o número randômico, ele da a posição do arquivo do primeiro número randômico certo, porém o segundo ele da uma posição diferente da do número sorteado, EX: ele sorteia o número 5 e diz que ele está na posição 2 no arquivo, mas na verdade está na posição 3. E também tem um outro problema, por algum motivo as vezes ele sorteia 0, mesmo não estando na lista de números. Se alguém conseguir dar uma força eu agradeço. Segue o programa e os números do arquivo.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
void main(){
setlocale(LC_ALL, "Portuguese");
int num1;
int num2;
int chute1;
int chute2;
char lerNumeros;
FILE* f;
f = fopen("numeros.txt","r");
if(f == 0){
printf("Desculpe, arquivo indisponível :(\n");
printf("Tente novamente mais tarde\n\n");
exit(1);
}
printf("O ARQUIVO FOI ABERTO!!!\n\n");
int totalNumeros;
fscanf(f, "%d", &totalNumeros);
srand(time (0));
int random1 = rand() % totalNumeros;
int random2 = rand() % totalNumeros;
//Pegando o primeiro numero
for(int i = 0; i <= random1; i++){
fscanf(f, "%d", &num1);
}
//pegando o segundo numero
for(int j = 0; j <= random2; j++){
fscanf(f, "%d", &num2);
}
int soma = num1 + num2;
printf("Aperte a tecla F para fazer a soma de dois números dentro do arquivo: ");
scanf(" %c", &lerNumeros);
while(lerNumeros != 'F'){
printf("\n\nDigite apenas a tecla F!!!\n");
scanf(" %c", &lerNumeros);
}
printf("\n\nA SOMA DEU %d\n\n", soma);
printf("chute quais foram os dois números selecionados\n");
printf("Chute o primeiro número: ");
scanf("%d", &chute1);
printf("Chute o segundo número: ");
scanf("%d", &chute2);
if( (chute1 == num1 || chute1 == num2) && (chute2 == num1 || chute2 == num2) ){
printf("\n\n\nParabéns você acertou os dois números!!!");
}
else{
printf("\n\n\nQue pena você errou um dos números\n");
printf("Os números eram %d e %d\n", num1, num2);
}
/* "DEBUG"
printf("\n\ntotalNumeros: %d\n\n", totalNumeros);
printf("\n\n\n%d\n",random1);
printf("\n%d\n",random2);
*/
fclose(f);
}
NÚMEROS ARQUIVO 3 1 5 9