qq_45770858 2021-01-09 20:48 采纳率: 0%
浏览 173

用c++实现:给出n个圆的半径,求n个圆的面积之和。想问下各位大佬这个有什么问题运行的结果不对。。

#include<iostream>
using namespace std;
double sumArea(double *radius,int n);
int main(){
    int n;
    cin>>n;
    double *radius=new double [n];
    for(int i=1;i<=n;i++)
    {
        double temp;
        cin>>temp;
        radius[i]=temp;
    }
    cout<<sumArea(radius,n)<<endl;
    delete []radius;
    return 0;
    }
double sumArea(double *radius,int n){
    for(int j=1;j<=n;j++)
    {       
        const double pi=3.14;
        radius[0]=0;
        radius[0]+=rradius[j]*radius[j]*pi;
    }
    return radius[0];
    }

  • 写回答

2条回答 默认 最新

  • 蒟蒻一枚 2021-01-12 09:35
    关注

    sumArea函数里,第一个错误是redius[0]每次循环都赋值为0,而它是一个累加器,所以赋初值应该在for循环前面。第二个错误是for循环里最后一行redius打错了。。。

    参考代码:

    #include<iostream>
    using namespace std;
    double sumArea(double *radius,int n);
    int main(){
        int n;
        cin>>n;
        double *radius=new double [n];
        for(int i=1;i<=n;i++)
        {
            double temp;
            cin>>temp;
            radius[i]=temp;
        }
        cout<<sumArea(radius,n)<<endl;
        delete []radius;
        return 0;
        }
    double sumArea(double *radius,int n){
        radius[0]=0;
        for(int j=1;j<=n;j++)
        {       
            const double pi=3.14;
            radius[0]+=radius[j]*radius[j]*pi;
        }
        return radius[0];
    }
    评论

报告相同问题?

悬赏问题

  • ¥15 不同模型怎么用同一个shader
  • ¥15 安卓启动没有ais proxy与v4l2的log打印
  • ¥15 go怎么读取mdb文件里面的数据
  • ¥60 Matlab联合CRUISE仿真编译dll文件报错
  • ¥15 脱敏项目合作,ner需求合作
  • ¥15 脱敏项目合作,ner需求合作
  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?