我试图确定用户猜对了一个随机数的数量和位置的次数。
例如,如果数字是1234并且用户的输入是7214
所以他猜对了2号和4号。 因为:1 [2] 3 [4] == 7 [2] 1 [4]。
问题:在我接受用户输入后,程序会抛弃我。我得到一个错误,上面写着:"表达式:result_pointer!= nullptr"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int hit(int num);
int strike(int num);
int rndNum(int num);
void main()
{
int num = 0;
int chosenNum;
int saveHits;
srand(time(NULL));
printf("The Random number: %d", chosenNum = rndNum(num));
printf("\nPlease enter a 4 digit number: ");
scanf("%d", num);
saveHits = hit(num, chosenNum);
printf("\nThe number of hits: %d", saveHits);
getch();
}
int rndNum(int num)
{
int rndNum = rand() % 9000 + 1000;
return rndNum;
}
int hit(int num1, int chosenNum1)
{
int i, hit1 = 0;
for (i = 0; i < 4; i++)
{
if (num1 % 10 == chosenNum1 % 10)
hit1++;
num1 /= 10;
chosenNum1 /= 10;
}
return hit1;
}
答案 0 :(得分:1)
您错过了&
scanf("%d", &num);
^