求圆面积和,用c++,不知道哪里错了

求圆面积和

#include<iostream>
using namespace std;
double sum(double *r,int n);
int main(){
    int n,i;
    cin>>n;
    double *r=new double[n];//radius[n]
    for(i=0;i<n;i++){
        cin>>r[i];
    }

    cout>>"%.5lf">>    sum(double *r,int n)>>endl;
    delete [] r;
}
double sum(double *r,int n){
    int i;
    double su=0,s=0;
    for(i=0;i<n;i++){
        s=r[i]*r[i]*3.1415926;
        su+=s;        
    }
    return s;
}

img

cout>>"%.5lf">> sum(double *r,int n)>>endl;
->
printf("%.5lf\n", sum(r,n));

#include<iostream>
#include<cstdio>
using namespace std;
double sum(double *r,int n);
int main(){
    int n,i;
    cin>>n;
    double *r=new double[n];//radius[n]
    for(i=0;i<n;i++){
        cin>>r[i];
    }
 
    printf("%.5lf\n", sum(r,n));
    delete [] r;
    return 0;
}
double sum(double *r,int n){
    int i;
    double su=0,s=0;
    for(i=0;i<n;i++){
        s=r[i]*r[i]*3.1415926;
        su+=s;        
    }
    return s;
}

img


#include <iostream>
#include <iomanip>
using namespace std;

double sum(double* r, int n);

int main() {
  int n, i;
  cin >> n;
  
  double* info = new double[n]; 
  
  for (i = 0; i < n; i++) {
    cin >> info[i];
  }
  
  cout << fixed << setprecision(5) << sum(info, n) << endl;
  
  delete[] info;
  
  return 0;
}

double sum(double* r, int n) {
  int i;
  double su = 0, s = 0;
  
  for (i = 0; i < n; i++) {
    s = r[i] * r[i] * 3.1415926;
    su += s; 
  }
  
  return su;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7406544
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:找到数组里面缺失的数(C++(绝妙方法))
  • 您还可以看一下 郝悦集老师的C++编程课程中的 以面向对象的方法分析常见图形和形状的继承关系小节, 巩固相关知识点
  • 除此之外, 这篇博客: 【数组】两数之和中的 解答(C++): 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    问题分析: - 代码中存在两个问题。首先,在主函数中使用了错误的格式来输出结果。其次,在sum函数中,计算每个圆的面积时,将结果赋值给了变量s,但应该将结果累加到变量su中。

    解决方案: 1. 修正主函数中的输出格式,将 cout<<"%.5lf"<<sum(r, n)<<endl; 修改为 cout<<fixed<<setprecision(5)<<sum(r, n)<<endl;。这样可以保留小数点后五位并进行输出。 2. 在sum函数中,将 s=r[i]*r[i]*3.1415926; 修改为 su+=r[i]*r[i]*3.1415926;,将计算结果累加到变量su中。

    修改后的代码如下:

    #include<iostream>
    #include<iomanip>
    using namespace std;
    double sum(double *r, int n);
    int main(){
        int n, i;
        cin>>n;
        double *r = new double[n]; //radius[n]
        for(i=0; i<n; i++){
            cin>>r[i];
        }
    
        cout<<fixed<<setprecision(5)<<sum(r, n)<<endl;
        delete [] r;
    }
    double sum(double *r, int n){
        int i;
        double su=0;
        for(i=0; i<n; i++){
            su+=r[i]*r[i]*3.1415926;
        }
        return su;
    }
    

    通过以上修改,可以得到正确的圆的面积和结果。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^