我正在学习如何使用Objective C / C ++(使用Xcode 5)进行编程。我现在有一个关于如何计算矩形区域的基本代码。
int main()
{
//Step 1. Declare the Variables
int rectangleWidth, rectangleLength, rectangleArea;
//Step 2: Initialize The Variables
rectangleWidth = 4.0;
rectangleLength = 5.0;
//Step 3: Calculations
rectangleArea = rectangleWidth * rectangleLength;
}
当我运行它时,我得到了大量数字:
rectangleLength int 1606422622 1606422622
rectangleWidth int 32767 32767
rectangleArea int 32767 32767
任何想法?
答案 0 :(得分:3)
任何想法?
不确定。在某个地方你不恰当地混合类型。这一行有一个例子:
rectangleWidth = 4.0;
在这里,您要为int分配一个浮点数。正如Till在评论中指出的那样,编译器应该通过为您转换值来为您处理。但是,如果你犯了这个错误,你很可能也会在其他地方制作它。你没有解释你是如何查看结果的 - 在调试器中检查它们,将它们打印到控制台等等。你也没有告诉我们你是如何构建这个程序的 - 它是一个真正的iOS应用程序,基于基础的Mac命令行程序等?这些细节至关重要,至少就重复你的确切结果而言。例如,构建为iOS应用程序,我得到以下结果:
rectangleLength = 8.48798e-314
rectangleWidth = -1.99558
rectangleArea = 4.36328e-313
当我使用NSLog()
使用以下行显示变量时:
NSLog(@"rectangleLength = %g\nrectangleWidth = %g\nrectangleArea = %g", rectangleLength, rectangleWidth, rectangleArea);
在我们的中,使用%g
作为格式说明符是错误的 - 变量的类型为int
,所以我应该使用期望该类型的格式说明符。将%g
更改为%d
会产生正确的结果:
rectangleLength = 5
rectangleWidth = 4
rectangleArea = 20
无论您的计划具体细节如何,这里的课程都是:
答案 1 :(得分:0)
实际上,即使Caleb说你应该写
,它也应该有效rectangleWidth = 4;
代替
或声明
float rectangleWidth, rectangleLength, rectangleArea;
试试我的代码:(注意:如果您使用的是C,C ++,Objective C或Objective C ++,我没有得到,所以这里有一些C ++代码)
#include<iostream>
int main()
{
//Step 1. Declare the Variables
float rectangleWidth, rectangleLength, rectangleArea;
//Step 2: Initialize The Variables
rectangleWidth = 4.0;
rectangleLength = 5.0;
//Step 3: Calculations
rectangleArea = rectangleWidth * rectangleLength;
std::cout << rectangleArea << std::endl;
}
我认为你的输出系统错了