#define _CRT_SECURE_NO_WARNINGS 1
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#define MAX_STAGE 10
int main()
{
int no;
int i = 0;
int stage = 0;
int ans;
int num[MAX_STAGE];
int select = 0;
printf("+-----------------------------------------+\n");
printf("| 1.Easy 2.Moderate 3.Hard 4.More Hard |\n");
printf("+-----------------------------------------+\n");
printf("Please Select#");
scanf("%d", &select);
switch (select){
case 1:
srand((unsigned long)time(NULL));
ans = rand() % 10 + 1;
printf("Please guess an integer from 1 to 10.\n\n");
break;
case 2:
srand((unsigned long)time(NULL));
ans = rand() % 100 + 1;
printf("Please guess an integer from 1 to 100.\n\n");
break;
case 3:
srand((unsigned long)time(NULL));
ans = rand() % 1000 + 1;
printf("Please guess an integer from 1 to 1000.\n\n");
break;
case 4:
srand((unsigned long)time(NULL));
ans = rand() % 10000 + 1;
printf("Please guess an integer from 1 to 10000.\n\n");
break;
default:
printf("Your Enter Error,Try again!\n\n\n");
break;
}
do{
printf("You have %d more chances ,Please Guess>", MAX_STAGE - stage);
scanf("%d", &no);
num[stage++] = no;
if (no > ans)
printf("big!!!\n");
else if (no < ans)
printf("small!!!\n");
} while (no != ans&&stage < MAX_STAGE);
if (no != ans)
printf("Unfortunately, the correct answer is %d\n", ans);
else{
printf("Guess success!\n");
printf("You got it right %d times\n", stage);
}
puts("\n--- Input record ---");
for (i = 0; i < stage; i++){
printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans);
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Guess()
{
int x;
int select = 0;
printf("+-----------------------------------------+\n");
printf("| 1.Easy 2.Moderate 3.Hard 4.More Hard |\n");
printf("+-----------------------------------------+\n");
printf("Please Select#");
scanf("%d", &select);
switch (select){
case 1:
srand((unsigned long)time(NULL));
x = rand() % 10 + 1;
printf("Please guess an integer from 1 to 10.\n\n");
break;
case 2:
srand((unsigned long)time(NULL));
x = rand() % 100 + 1;
printf("Please guess an integer from 1 to 100.\n\n");
break;
case 3:
srand((unsigned long)time(NULL));
x = rand() % 1000 + 1;
printf("Please guess an integer from 1 to 1000.\n\n");
break;
case 4:
srand((unsigned long)time(NULL));
x = rand() % 10000 + 1;
printf("Please guess an integer from 1 to 10000.\n\n");
break;
default:
printf("Your Enter Error,Try again!\n\n\n");
break;
}
int g = 0;
while (1){
printf("Please Guess>");
scanf("%d", &g);
if (g == x){
printf("guess success!\n");
break;
}
else if (g > x){
printf("big!\n");
}
else{
printf("small!\n");
}
}
}
void Game()
{
int quit = 0;
while (!quit){
int select = 0;
printf("+-------------------+\n");
printf("| 1.Play 2.Exit |\n");
printf("+-------------------+\n");
printf("Please Select#");
scanf("%d", &select);
switch (select){
case 1:
Guess();
break;
case 2:
quit = 1;
break;
default:
printf("Your Enter Error,Try again!\n\n\n");
break;
}
}
}
int main()
{
Game();
system("pause");
return 0;
}
第一份代码参考于柴田望洋的《明解C语言·中级篇》,我给它增加了猜数字游戏的难度选择选项,但是不知道怎样让它一直循环下去。第二份代码可以一直循环下去,但是如果可以给每个难度选项增加不同的猜数字次数就更好了。