#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(NULL)); // initiates random number generation
int CpuGuess;
int IsCorrect;
int HigherLower;
int lower,higher;
printf("Think of a number from 1-9, keep it in mind.\n");
CpuGuess = rand() % 10; //cpu guesses number between 1-9
printf("Is your number %d? Yes = 1, No = 2, Enter here: ", CpuGuess);
scanf("%d",&IsCorrect); // asks if its 1 or 2 depending if correct or false
while(IsCorrect == 2)
{
printf("Is your number higher or lower?, lower = 1, higher = 2");
scanf("%d",&HigherLower);
if(HigherLower==1)
{
lower == 0;
higher = CpuGuess;
CpuGuess = (rand() % (higher - lower 1)) lower;
printf("Is your number %d?", CpuGuess);
}
else if(HigherLower==2)
{
}
}
if(IsCorrect == 1)
{
printf("I have guessed your number!");
}
}
無法猜測在上限和下限之間,其猜測的荒謬數字如 460 之類的東西,我說得越低,它會下降但只會下降到某個點,并且每次都不同(仍然是 400 )
uj5u.com熱心網友回復:
正如我已經評論過的那樣,問題似乎出在lower == 0. 這是一個比較,而不是一個賦值,所以在這一點上,lower變數從未被初始化,因此如果你執行CpuGuess = (rand() % (higher - lower 1)) lower;較低的變數會創建未定義的行為,因為我們不知道該變數實際具有什么值。
簡單的修復是更改lower == 0;為lower = 0;,它應該可以正常作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/341512.html
標籤:C
上一篇:c中使用函式和結構的復數計算器
