我正在编写一个程序,它使用两个函数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;
}发布于 2020-11-27 16:04:38
您必须将side s作为perimeter函数中的参数传递,如下所示:
double perimeter(double s){
return 4 * s
}您应该使用如下参数调用您的函数:
int main(){
double s;
cin >> s;
cout << "perimeter of square 25. is" << perimeter(s) << endl;
}如果它起作用了,请告诉我。
发布于 2020-11-27 16:48:51
在您的perimeter()函数中,变量s没有使用值进行初始化。当变量s未初始化时,它指向内存中的某个垃圾值。由于这个原因,当你将4乘以s(一些无用价值)时,你得到的值是垃圾。
您可以更改方法/函数签名,如下所示:
double perimeter(double s){
return 4 * s
}并调用内部带有参数的函数。
int square;
cin>>square;
cout << "perimeter of square 25. is" << perimeter(square) << endl;或者,您可以简单地声明一个全局变量,该变量保存您想要的周长的平方值。
int square;
int main()
{
cin>> square;
cout << "perimeter of square 25. is" << perimeter() << endl;
}https://stackoverflow.com/questions/65033755
复制相似问题