gpt4 book ai didi

c++ - 组合 2 个函数时 Xcode 出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:22 26 4
gpt4 key购买 nike

我的家庭作业几乎不需要帮助。这是一个根据我必须组合 2 个程序的项目,用户可以选择他想要运行的程序;我正在尝试为此使用 IF ELSE 语句。单独运行这些程序时,它们工作正常。 Xcode 在尝试运行第一个程序 rand function one 时给我一个问题。你们能帮帮我吗?谢谢

#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;
}

最佳答案

time() 返回一个NSUInteger,并且在 64 位 OS X 平台上

  • NSUInteger 被定义为 unsigned long,并且
  • unsigned long 是一个 64 位无符号整数。
  • int 是一个 32 位整数。

所以 int 是一个比 NSUInteger “小”的数据类型,因此编译器警告。

另请参阅“基础数据类型引用”中的 NSUInteger:

构建 32 位应用程序时,NSUInteger 是一个 32 位无符号整数。 64 位应用程序将 NSUInteger 视为 64 位无符号整数。

要修复该编译器警告,您可以将本地计数变量声明为

NSUInteger count;

或者(如果您确定您的数组永远不会包含超过 2^31-1 个元素!),添加一个显式转换:

srand((int)time(NULL));

关于c++ - 组合 2 个函数时 Xcode 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com