2201_75531041 2023-03-15 16:55 采纳率: 100%
浏览 25
已结题

求素数并求其平均值 代码存在死循环

提示遇见死循环;
但是我找不到。

img


####输入样例:

9
5 2 7 4 8 23 65 1 40
#include <iostream>
#include<math.h>
using namespace std;
//请填入你的代码   
class Array
{
    private:
    int p[10];
    int k;
    float s;
    
    public:
    Array(int [],int );
    int fun(int n);
    void sum();
    void show();
    ~Array(){
        
        delete []p;
    }
};
Array::Array(int *ptr,int n)
{
    s=0;
    for(int i=0;i<=n;i++)
        p[i]=ptr[i];
}
int  Array::fun(int n)
{
    int cp=1;
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0) cp=0;
    }
    return cp;
}
void Array::sum()
{
   int i=0,temp=0;
   for(;i<k;k++)
   {
       if(fun(p[i]))
       {s+=p[i];temp++;}
   }
   s/=temp;
}
 void Array::show()
 {
     cout<<"数组个数为:"<<k<<endl;
     cout<<"数组为:"<<endl;
     for(int i=0;i<k;i++)
     {
         cout<<*(p+i)<<"    "<<endl;
         if((i+1)%5==0) cout<<endl;
     }
     
    cout<<"和为:"<<s;
 }
int main( )
{
    int p[10];
    
    int k;
    //请填入你的代码 
    cin>>k;
    for(int q=0;q<k;k++)
    {
        cin>>p[q];
    }
    Array arr(p,k);
    arr.sum();
    arr.show();
    return 0;  
}


  • 写回答

6条回答 默认 最新

  • 丘比特惩罚陆 2023-03-15 17:01
    关注

    在 Array::sum() 函数中,for循环的判断条件错误,应该是 i<k 而不是 k++。因为在for循环中已经进行了 i++ 操作,如果将 k++ 放在循环语句中,会导致 k 的值一直增加,最终导致数组越界和死循环。

    {
       int i=0,temp=0;
       for(;i<k;i++)
       {
           if(fun(p[i]))
           {s+=p[i];temp++;}
       }
       s/=temp;
    }
    
    建议以后编写程序时要仔细检查循环条件,特别是for循环的语法是否正确。有用的话,给个关注,谢谢!
    
    
    ```c++
    
    
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 3月23日
  • 已采纳回答 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码