求解一道C语言题目!!!!

1. 电脑随机产生1000—9999之间的数字(包括1000、9999);
提示:用rand函数,该函数在stdlib.h库中,并保证多次运行产生不同的随机数
2. 玩家每轮有七次猜数的机会,如果七次都没有猜到,则失败,判为0分;
3. 玩家每轮可以请求帮助,提问关于产生数字的信息,扣分细则如下;
4. 游戏以百分制形式,初始分为100,最后得分最多为赢家。
 帮助内容及扣分细则:
. 判断你所猜的数中各位数字对应位置正误情况,以R表正确,E表错误。若随机数是2537,而猜的数是1234,则输出EERE,代表猜的数第3位正确,第1,2,4位错误。
——扣当前分数的1/10
. 判断你所猜的数中正确数字是什么。若随机数是2537,而猜的数是1234,则输出有两个数字正确,它们是2,3。 ——扣当前分数的1/10
#include
#include
int sort = 100;
int main()
{
int in = 0;
int r = 0;
while (1)
{
r = rand();
while (1000 <= r && r <= 9999)
{
printf("please enter data:");
scanf("%d", &in);
if (in > r || in < r) //如果大或小,减去当前分数的1/10
sort -= sort / 10;
printf("当前分数%d\n", sort);
}
}
return 0;
}

3个回答

#include "stdio.h"
#include "stdlib.h"
int sort = 100;
int main()
{
int in = 0;
int r = 0;
int sum,j;
while (1)
{
i=0;
char help;
r = rand();
while (1000 <= r && r <= 9999 && sum {
printf("please enter data:");
scanf("%d", &in);
printf("Do you need help?Y/N");//是否选择帮助,Y选择帮助,N不需要帮助
scanf("%c",&help);
if(help=='Y')//Y选择帮助
{
int next,next1;
int num1,num2;
printf("Select help mode :position:1/Correct:2");//选择帮助类型,1为查看对应位置正确性,2为查看正确数字
scanf("%d",&j);
if(j==1)//1为查看对应位置正确性
{
num1=in;num2=r;
char s[4];
for(next=0;next {
if(num1%10==num2%10)//对应位置对比
{
s[4-next-1]="R";
}
else
{
s[4-next-1]="E";
}
num1=num1/10;
num2=num2/10;
}
puts(s);//输出对比结果
}
else if(j==2)//2为查看正确数字
{
int s[4];
num1=in;
int g=0;
for(next=0;next {
num2=r;
for(next1=0;next1 {
if(num1%10==num2%10)
{
s[g++]=num2%10;
}
num2/=10;
}
num1/=10;
}
puts(s);//输出对比结果
}
sort-=sort/10;//扣除使用帮助分
printf("当前分数%d\n", sort);
}
if (in > r || in < r) //如果大或小,减去当前分数的1/10
sort -= sort / 10;
printf("当前分数%d\n", sort);
sum++;//
}
}
return 0;
}

gegeda123
gegeda123 有联系方式吗,还有一点疑问求解答
2 年多之前 回复

没有编译运行,不确定正确性,这是最简单的思路,你应该能够看懂。

好复杂好复杂好复杂好复杂好复杂

u010655288
SadVSSmile while (1000 <= r && r <= 9999 && sum <7)
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!