C语言猜数游戏(自定义函数)

C语言编程,先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算

机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数。
[提示:利用随机数生成函数,可以防止scanf输入时,用户不小心输入了非法字符]
自己编了一个不对,自定义函数不会。求好人写一个简单的。
#include<stdio.h>
#include<stdlib.h>
int main()
{ int chai(int x);
int x;
scanf("%d",&x);
printf("请输入你要猜的数字:",x);
printf("chai=%d\n",chai(x));
}
int chai(int b,int a,int i)
{ i=1;
while(1)
{ a=rand()%100;
while(i<=10)
{ scanf("%d",&b);
if(a==b)
{
printf("您猜了%d次才猜对此数",i);
return 0;
}
else if(b>a)
printf("你猜的数字偏大请重新输入");
else
printf("你猜得数字偏小请重新输入");
i++;
}
printf("\n刚才你要猜的正确数字是%d,你猜错了\n",a);
break;

}
return 0;
}
一定要自定义函数,最好基础点谢谢

用你写的程序改的

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int a;
int chai(int a);
printf("请输入你要猜的数字:");
printf("chai=%d\n",chai(a));
}
int chai(int a)
{int b,i=1;
while(1)
{
        srand(time(NULL));
    a=rand()%100;
while(i<=10)
{ scanf("%d",&b);
if(a==b)
{
printf("您猜了%d次才猜对此数",i);
return  a;
}
else if(b>a)
printf("你猜的数字偏大请重新输入");
else
printf("你猜得数字偏小请重新输入");
i++;
}
printf("\n刚才你要猜的正确数字是%d,你猜错了\n",a);
break;

}
return 0;
}

追问

谢谢。我试试

追答

就改了两个地方:

    定义函数变量的数量要和调用函数的变量一致。

    如果没有一个生成随机数的种子,直接使用rand()%100是无法得到随机数的,我这里是使用系统的时间作为种子生成随机数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-11
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand(time(0));//得到随机数要做的形式
int number=rand()%100+1;//每次召唤rand()就得到一个随机的整数。 x%n的结果是[0,n-1]的一个整数
int count=0;
int a=0;
printf("请猜这个1到100之间的数:");
do{
printf("请猜这个1到100之间的数:");
scanf("%d",&a);
count++;
if(a>number){
printf("你猜的数大了。");
}
else if(a<number){
printf("你猜的数小了。");
}else {
printf("太好了!你用了%d次就猜到了答案。\n",count);
return 0;
}
}while(a!=number&&count!=10);
printf("抱歉!你用了%d次还没猜到答案。\n",count);
return 0;
}
相似回答