【发布时间】:2020-11-27 07:54:23
【问题描述】:
我正在开发一个程序,它使用两个函数 area 和 perimeter 来返回正方形的面积和周长。我编写的以下代码正确返回了区域,但为周长生成了一个垃圾值。你能纠正我做错了什么吗?
#include<iostream>
#include<cmath>
using namespace std;
int area(int s)
{
int area = s * s;
return area;
}
double perimeter()
{
int s;
int perimeter = 4 * s;
return perimeter;
}
int main()
{
int s;
cout << "enter the side: "
<< endl;
cin >> s;
cout << "area of square is "
<< area(s) << endl;
cout << "perimeter of square 25. is" << perimeter() << endl;
}
【问题讨论】:
-
1.切勿在此站点上发布行号代码。如果在错误消息中调用了特定的行号,请使用内联 comment 对其进行标记。 2. 始终正确格式化和缩进本网站上发布的代码。 3.
int s; int perimeter = 4*s;...和s是什么 ??这是一个不确定的int。您的代码调用未定义的行为。 -
您介意删除行号以便其他人更容易阅读代码吗?
-
函数
perimeter()声明了一个变量s,它永远不会被初始化,然后被使用。因此,该函数表现出未定义的行为。perimeter()中的s是一个独特的变量,与main()中声明的s和area()的参数没有任何关系。 -
使用正确的编译器标志不会编译godbolt.org/z/cT59dW。编译器是你的朋友,好好利用吧!
标签: c++