| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 403 人关注过本帖
标题:求问出错在哪里
只看楼主 加入收藏
’Early‘
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-3-14
结帖率:100%
  已结贴   问题点数:20  回复次数:4   
求问出错在哪里
为什么只有输入的数字的第一位和随机生成的数比较

#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;
}
}
}
2018-03-14 13:53
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1407
专家分:5835
注 册:2016-2-14
  得分:10 
char num 只能保存一个字符
2018-03-14 14:07
’Early‘
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-3-14
  得分:0 
回复 2楼 grmmylbs
那么怎么改呢
2018-03-14 14:14
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1407
专家分:5835
注 册:2016-2-14
  得分:10 
用数组char num[10]
2018-03-14 14:56
’Early‘
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-3-14
  得分:0 
回复 4楼 grmmylbs
感谢
2018-03-14 16:09







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032407 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved