任务:编程先由计算机“想”一个1~100之间的数请人猜,游戏者开始猜每一个数时有基本积分100分,猜错一次扣10分。如果人猜对了,在屏幕上输出人猜对此数获得的积分,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,积分已经扣完,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜10个数,直到猜完10个数后才结束,游戏最后在屏幕上输出人在猜每个数时得到的相应积分。
我写的代码;
#include
#include
#include
int main() {
int a, b, i, flag = 0, j;
char next;
srand(time(0));
while (1) {
a = rand() % 100 + 1;
int count = 100;
do {
scanf("%d", &b);
i++;
count -= 10;
if (i % 2 == 0) {
break;
}
if (b > a) {
printf("Wrong!Too high\n");
} else if (b < a) {
printf("Wrong!Too low\n");
} else {
printf("right!您当前得分为%d\n", count);
flag = 1;
break;
}
} while (a != b && b != -1);
if (flag == 1) {
break;
}
printf("您一共猜了%d次", i);
printf("输入n结束,其他继续");
getchar();
next = getchar();
if (next == 'n') {
int count = 100;
for (j = 0; j < i; j++) {
count -= 10;
printf("当您输入%d时,您的得分为%d\n", i, count);
}
break;
}
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
enum CHOOSE
{
EXIT, //0
PLAY //1
};
void menu() //菜单
{
printf("********************\n");
printf("****** 1.play ******\n");
printf("****** 0.exit ******\n");
printf("********************\n");
}
void game()
{
int input = 0; //猜的数字
int pro = 0; //电脑给出的随机数
int count = 0; //计数器,计数猜的次数
srand((unsigned)time(NULL)); //生成随机数
pro = rand() % 100 + 1; //生成0-100的随机数
while (1)
{
printf("请猜一个数字:>");
scanf("%d", &input);
if (input > pro)
{
printf("猜大了\n");
count++;
}
else if (input < pro)
{
printf("猜小了\n");
count++;
}
else
{
printf("恭喜您!猜对了\n");
printf("您猜了%d次猜对\n", count + 1);
break;
}
}
}
int main()
{
int choose = 0; //选择玩游戏或者退出
do
{
menu();
printf("请选择:>");
scanf("%d", &choose);
switch (choose)
{
case EXIT:
printf("退出成功!\n");
break;
case PLAY:
game();
break;
default:
printf("选择错误!请重新选择\n");
break;
}
} while (choose);
system("pause");
return 0;
}