c语言 - 我对如何解决此警告和错误有点困惑



我必须制作一个代码,其中生成一个介于 1 和 100 之间的随机数,用户必须输入数字直到他们弄清楚为止。最后,它必须告诉他们花了多少猜测才弄清楚。我有一个错误和一个警告,我不知道如何处理。我尝试查找它们,但我真的找不到可以帮助我的东西:

main.c: In function ‘main’:
main.c:18:26: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
srand((unsigned) time(&t));
^~~~
main.c:43:1: error: expected ‘while’ before ‘}’ token
}
^
main.c:43:1: error: expected declaration or statement at end of input

这是我正在使用的代码以供参考:

#include <stdio.h>
#include <stdlib.h>
int main() {
char name[1024];
int i, n;
time_t t;
int randNum;
int userTries;
int inpUser;
printf("Please enter your name: n");
scanf("%s", name);
printf("Hello %sn, we're going to play a game where you guess a secret number. I will tell you if you're too high or too low, and I will also tell you at the end how many guesses you took.n", name);
//initializes the random number generator
srand((unsigned) time(&t));
//calculates a random number between 100 and 1*/
randNum = rand() % 100 + 1;
do {
printf("Guess a random number, but I bet you'll get it wrong:n");
scanf("%d", inpUser);
if (inpUser == randNum) {
printf("That's the number! Maybe I underestimated you.n");
}
else if (inpUser > randNum) {
printf("You're a little high there, bud.n");
}
else if (inpUser < randNum) {
printf("Maybe go a little higher next time?n");
userTries++;
}
while (randNum != inpUser);
printf("Congratulations, you actually did it! That's the number! It took you %d tries, but you did it!", userTries);
return 0;
}
}

在 while 循环中,您应该将 print 语句括在大括号 {} 内。使用分号结束 while 语句。另外,你声明了time_t,但你只是在使用时间。没有声明可变时间。

我纠正了你的程序:

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
char name[1024];
int i, n;
time_t t;
int randNum = 0;
int userTries = 0;
int inpUser = 0;
printf("Please enter your name: n");
scanf("%s", name);
printf("Hello %sn, we're going to play a game where you guess a secret number. I will tell you if you're too high or too low, and I will also tell you at the end how many guesses you took.n", name);
//initializes the random number generator
srand((unsigned) time(&t));
//calculates a random number between 100 and 1*/
randNum = rand() %100 + 1;
do {
printf("Guess a random number, but I bet you'll get it wrong:n");
scanf("%d", &inpUser);
if (inpUser == randNum) {
printf("That's the number! Maybe I underestimated you.n");
}
else if (inpUser > randNum) {
printf("You're a little high there, bud.n");
}
else if (inpUser < randNum) {
printf("Maybe go a little higher next time?n");
userTries++;
}
}
while (randNum != inpUser);
printf("Congratulations, you actually did it! That's the number! It took you %d tries, but you did it!", userTries);
return 0;
}

相关内容

  • 没有找到相关文章

最新更新