Привет, я знаю, что уже существует вопрос о случайном генераторе в пределах диапазона, но я этого не понимаю. Я новичок в C, и я знаю только java. В этой программе я пытаюсь создать математического репетитора в C. Программа будет произвольно генерировать два числа от 1 до 10 и оператор. Он работает, но не показывает следующую строку, и он продолжает показывать неправильный ответ. Кроме того, почему VS2010 говорит, что getch() не определено? Вот код:Случайный генератор в пределах диапазона
int ans;
int ans1;
int num1 = rand() % 10 + 2;
int num2 = rand() % 10;
int operation = rand() % 4;
printf("\tMATH TUTOR\n");
if(operation == 1){
printf("What is %d + %d ?", num1, operation, num2);
scanf_s("%d",ans1);
ans = num1 + num2;
if(ans != ans1){
printf("Incorrect! Try Again!");
do{
scanf_s("%d", &ans1);
}while(ans != ans);
}else{
printf("Correct!");
}
}else if(operation == 2){
printf("What is %d - %d ?", num1, operation, num2);
scanf_s("%d",&ans1);
ans = num1 - num2;
if(ans != ans1){
printf("Incorrect! Try Again!");
do{
scanf_s("%d", &ans1);
}while(ans != ans);
}else{
printf("Correct!");
}
}else if(operation == 3){
printf("What is %d * %d ?", num1, operation, num2);
scanf_s("%d",&ans1);
ans = num1 * num2;
if(ans != ans1){
printf("Incorrect! Try Again!");
do{
scanf_s("%d", &ans1);
}while(ans != ans);
}else{
printf("Correct!");
}
}else if(operation == 4){
printf("What is %d/%d ?", num1, operation, num2);
scanf_s("%d",&ans1);
ans = num1/num2;
if(ans != ans1){
printf("Incorrect! Try Again!");
do{
scanf_s("%d", &ans1);
}while(ans != ans);
}else{
printf("Correct!");
}
}
getch();
return 0;
}
Я изменил его, но случайный генератор работает неправильно. Это как установить диапазон на случайный генератор? int operation = rand()% 4 + 1 – eLg
Да, это сработает. Однако в вашем коде есть и другие проблемы. Посмотрите на свои распечатки. Ваш код - printf («Что такое% d +% d?», Num1, операция, num2); У вас есть% d + (оператор)% d. Но вы указываете три аргумента ... num1, operator, num2. Вы должны удалить оператора из этого списка. –
спасибо. У меня есть проблема, хотя всякий раз, когда я запускаю программу, она продолжает показывать 2 * 8, и когда я набираю правильный ответ, он продолжает показывать неправильную попытку снова. – eLg