首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序返回无用程序值

程序返回无用程序值
EN

Stack Overflow用户
提问于 2020-11-27 15:54:24
回答 2查看 75关注 0票数 2

我正在编写一个程序,它使用两个函数area和perimeter来返回正方形的面积和周长。我编写的以下代码正确地返回了面积,但为周长生成了一个无用的值。你能纠正我做错的地方吗?

代码语言:javascript
复制
#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;
}
EN

回答 2

Stack Overflow用户

发布于 2020-11-27 16:04:38

您必须将side s作为perimeter函数中的参数传递,如下所示:

代码语言:javascript
复制
double perimeter(double s){
    return 4 * s
}

您应该使用如下参数调用您的函数:

代码语言:javascript
复制
int main(){
    double s;
    cin >> s;
    cout << "perimeter of square 25. is" << perimeter(s) << endl;
}

如果它起作用了,请告诉我。

票数 7
EN

Stack Overflow用户

发布于 2020-11-27 16:48:51

在您的perimeter()函数中,变量s没有使用值进行初始化。当变量s未初始化时,它指向内存中的某个垃圾值。由于这个原因,当你将4乘以s(一些无用价值)时,你得到的值是垃圾。

您可以更改方法/函数签名,如下所示:

代码语言:javascript
复制
double perimeter(double s){
    return 4 * s
}

并调用内部带有参数的函数。

代码语言:javascript
复制
 int square; 
 cin>>square;
 cout << "perimeter of square 25.  is" << perimeter(square) << endl;

或者,您可以简单地声明一个全局变量,该变量保存您想要的周长的平方值。

代码语言:javascript
复制
int square;
int main()
{
  cin>> square;  
  cout << "perimeter of square 25.  is" << perimeter() << endl; 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65033755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档