求问出错在哪里
为什么只有输入的数字的第一位和随机生成的数比较#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
int dif_1(); //定义各变量
int dif_2();
int dif_3();
long t;
int ch;
void menu_1();
int menu_in();
int dif_1()
{
int dif_1;
dif_1 = (rand()%10)+1; //产生1到10之间的随机数
return dif_1;
}
int dif_2()
{
int dif_2;
dif_2 = (rand()%100)+1; //产生1到100之间的随机数
return dif_2;
}
int dif_3()
{
int dif_3;
dif_3 = (rand()%1000)+1; //产生1到1000之间的随机数
return dif_3;
}
void menu_1() //主界面代码
{ //不同选项对应不同难度
int i;
{
system("CLS");
for(i=0;i<7;i++)
printf("\n");
printf(" 猜数字游戏\n ");
printf("\n\n");
printf(" 1--范围 1 - 10\n\n");
//产生在1到10范围内的随机数
printf(" 2--范围 1 - 100\n\n");
//产生在1到100范围内的随机数
printf(" 3--范围 1 - 1000\n\n");
//产生在1到1000范围内的随机数
printf(" 4--退出\n\n"); //退出程序
}
}
int menu_in()
{
int choose;
printf(" 选择:");
scanf("%d",&choose); //输入数字,选择对应函数
return choose;
}
void test(int gess)
{
char num=NULL;
char newchoose=NULL;
int sum=1;
int tum;
long ti;
system("CLS");
//清空屏幕内容
srand((unsigned)time(NULL));
//计时器开始运行
t=time(NULL);
//计时器统计秒数赋值给t
int temp = (num-'0');
while(temp!=gess)
{
//游戏主程序
printf("\n");
printf("\n (输入 E 可以返回菜单)\n");
printf("\n 请输入数字:");
scanf("%s",&num);
if(num == 'e')
//输入小写e,统计猜测次数和所用时间,回到主界面
{
tum = sum-1;
ti=time(NULL)-t+1;
printf("\n 输入 'Y'退出游戏..\n");
//再次确认是否返回主界面
printf("\n 输入 'N' 将继续游戏..\n");
printf("\n (Y/N)");
scanf("%s",&newchoose);
if(newchoose == 'y') //输入小写Y返回主界面
{
printf("\n 你用了 %d 秒和 %d 次.\n",tum,ti);
//显示猜测次数和所用时间,退回主界面
printf("\n 请按 ENTER 退出...");
break;
}
else if(newchoose == 'Y') //输入大写Y返回主界面
{
printf("\n 你用了 %d 秒和 %d 次.\n",tum,ti);
//显示猜测次数和所用时间,退回主界面
printf("\n 请按 ENTER 退出...");
break;
}
}
else if(num == 'E')
//输入大写E,统计猜测次数和所用时间,回到主界面
{
tum = sum-1;
ti=time(NULL)-t+1;
printf("\n 输入 'Y' 退出游戏..\n");
printf("\n 输入 'N' 继续游戏..\n");
printf("\n (Y/N)");
scanf("%s",&newchoose);
if(newchoose == 'y')
//输入小写Y返回主界面
{
printf("\n 你用了 %d 秒和 %d 次.\n",tum,ti);
//显示猜测次数和所用时间,退回主界面
printf("\n 请按 ENTER 退出...");
break;
}
else if(newchoose == 'Y')
//输入大写Y返回主界面
{
printf("\n 你用了 %d 秒和 %d 次.\n",tum,ti);
//显示猜测次数和所用时间,退回主界面
printf("\n 请按 ENTER 退出...");
break;
}
}
temp = num-'0';
if(temp>gess)
//比较输入数字与随机数的大小,并输出比较情况
{
system("CLS");
//清空屏幕
printf("\n ------- %d 太大了--------",temp);
//输出提示语,猜测数字太大
sum++;
}
else if(temp<gess)
{
system("CLS");
//清空屏幕
printf("\n -------- %d 太小了--------",temp);
//输出提示语,猜测数字太小
sum++;
}
else
{
t=time(NULL)-t+1;
{printf("\n You need more pracice !!!!.The number is %d",gess);
printf("\n 你用了 %d 秒和 %d 次.\n",sum,t);
printf("\n 请按 ENTER 退出...");}
}
}
getchar();
getchar();
}
int main()
{
int choose;
while(1)
{
menu_1();
choose=menu_in(); //对应主界面输入数字,运行不同函数
switch(choose)
{
case 1:
test(dif_1()); //运行dif_1 函数程序,产生1到10范围内的随机数
break;
case 2:
test(dif_2()); //运行dif_2 函数程序,产生1到100范围内的随机数
break;
case 3:
test(dif_3()); //运行dif_3函数程序,产生1到1000范围内的随机数
break;
case 4:
exit(0); //退出程序
break;
default:
printf("\n 选择错误!\n"); //输入错误数字会弹出提示并要求重新输入,直至输入正确
printf("\n 请按 ENTER 重新选择!");
getchar();
getchar();
break;
}
}
}