我的作业无需帮助。这是一个项目,根据我必须结合2个程序,用户可以选择他想要运行的程序;我正在尝试使用IF ELSE语句。在单独运行这些程序时,它们工作正常。在尝试运行第一个程序rand函数时,Xcode给了我一个问题。你能帮助我吗? 谢谢
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main()
{
int x;
cout << "Hello Welcome to my Game Menu. Please make selection from following criteria" <<endl;
cout << "Please press 1 if you would like to play The Guessing Game"<<endl;
cout << "Please press 2 if you would like to play The Math Game"<<endl;
cin >>x;
if ( x == 1)
{
cout << "Welcome to Guessing Game" <<endl;
//declare the variables
int num; //variable to store the random
//number
int guess; //variable to store the number
//guessed by the user
bool isGuessed; //boolean variable to control
//the loop
srand(time(NULL)); //Line 1
num = rand() % 100; //Line 2
isGuessed = false; //Line 3
while (!isGuessed) //Line 4
{ //Line 5
cout << "Enter an integer greater"
<< " than or equal to 0 and "
<< "less than 100: "; //Line 6
cin >> guess; //Line 7
cout << endl; //Line 8
if (guess == num) //Line 9
{ //Line 10
cout << "You guessed the correct "
<< "number." << endl; //Line 11
isGuessed = true; //Line 12
} //Line 13
else if (guess < num) //Line 14
cout << "Your guess is lower than the "
<< "number.\n Guess again!"
<< endl; //Line 15
else //Line 16
cout << "Your guess is higher than "
<< "the number.\n Guess again!"
<< endl; //Line 17
} //end while //Line 18
}
else if ( x == 2) {
cout <<"Welcome to Math Game " <<endl;
double a,b,x,y,z,sum;
string name;
cout << "Please enter your name... ";
cin>> name;
cout<<endl;
cout << " WELCOME TO MATH MIND TRICKS " <<name <<endl;
cout<< "I will read your mind." <<endl;
cout<< "We will choose five , five digit numbers together" <<endl;
cout<< "but i will be able to give you the sum, just after the first one" <<endl;
cout<<endl;
cout<< "What is your first five digit number?"<<endl;
cin>> x;
cout<<endl;
cout<< " The sum is going to be " << 199998+x <<endl;
cout<< "Please enter a second number" <<endl;
cin>> y;
cout<<endl;
a= 99999-y;
cout<< " OK, im going to choose " <<a <<endl;
cout<< " Please enter your last five digit number" <<endl;
cin>> z;
b= 99999-z;
cout<< " OK, im going to choose " <<b <<endl;
cout<<endl;
sum = a+b+x+y+z;
cout<< " The sum of our five numbers is " <<sum <<endl;
cout<<endl;
cout <<"Impressed? :)" <<endl;
}
return 0;
}
答案 0 :(得分:1)
time()返回NSUInteger
,并在64位OS X平台上返回
因此int是比NSUInteger“更小”的数据类型,因此编译器警告。
另请参阅“基础数据类型参考”中的NSUInteger:
构建32位应用程序时,NSUInteger是一个32位无符号整数。 64位应用程序将NSUInteger视为64位无符号整数。
要修复该编译器警告,您可以将本地计数变量声明为
NSUInteger count;
或(如果您确定您的数组永远不会包含超过2 ^ 31-1个元素!),请添加一个显式的强制转换:
srand((int)time(NULL));