关于c++程序的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 14:01:38
我是一个菜鸟 有个个小程序 有一个错误 希望大家帮助改正 谢谢
问题是这样的:
1.在程序中定义一个整型变量,赋以1~1000之间的值,要求用户猜这个数,比较两个数的大小,并把比较结果提示给用户,直到用户猜对为止

#include<iostream.h>
void main()
{
int i=100;
int j;
int bijiao(int);
cout<<"现在开始猜数游戏,请您输入1~1000之间的整数"<<endl;
cin>>j;
bijiao(j);
}
int bijiao(int j)
{
if(1<=j<i)
cout<<"你输入的数小于要猜的数"<<endl;
else if(j==i)
cout<<"恭喜你猜对了!这个数就是100!!"<<endl;
else if(i<j<=1000)
cout<<"你输入的数大于要猜的数"<<endl;
else
cout<<"你输入的不是1~1000之间的数,请重新键入!!"<<endl;
return(0);
}
我试过把主调调函数中定义的 int i=100;放在被调函数中 ,这样程序可以运行,但是不能得出正确答案!!请大家帮帮忙!!

if(1<=j<i) 改成 if (i <= j && j < i)

你写成if(1<=j<i),相当于写成if( (1<=j) < i),首先判断1<=j是否成立,发现成立所以结果为1,现在成为判断if(1 < i)了,同样成立,所以就输出那个错误结果唠~
另外,你的int bijiao(int);应该定义为int bijiao(int j, int i);把,不然i值怎么传递进去呀~

//问题如楼上所说的了.(偶以前也是那样写的-_-).写个随机数参考下.
//不过这代码有问题.若输入不是数字..那就好玩了-_-||
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
void compare(int );
int i;
srand(time(NULL));//设置种子
i=rand()%1000;//产生随机数
compare(i+1);
system("pause");
return 0;
}
void compare(int i)
{
int j=0;
cout<<"现在开始猜数游戏,请您输入1~1000之间的整数"<<endl;
do{
cin>>j;
if(!(j>1 && j<1000))
cout<<"你输入的不是1~1000之间的数,请重新键入!!"<<endl;
else if(j<i)
cout<<"你输入的数小于要猜的数&qu