子葵 2021-06-05 22:54 采纳率: 100%
浏览 35
已采纳

C++二维数组 递归 找出负数个数和正数平均值 代码错误

#include <iostream>
#include <ctime>
#include <stdlib.h>
using namespace std;
    int s[10][10]={};
    int sumnum=0;
    int t=0;
    float av=0;
int nagnum()
{
    for(int i=0;i<10;i++)
    {
        for(int j=0;j<10;j++)
    {
        if(s[i][j]<0)
            sumnum+=1;
        else
            {if(s[i][j]>0)
            av=av+s[i][j]/100;
            }


    }
    }

    if(t==100)
        return sumnum;
    else
        {
            t++;
            return nagnum();
        }
}

int main()
{
    srand(int(time(0)));
    for(int i=0;i<10;i++)
    {for(int j=0;j<10;j++)
    {
       if(rand()%10>0.4)
       s[i][j]=rand()%100;
       else
       {
           s[i][j]=-rand()%100;
           if (s[i][j]==(-0))
            s[i][j]=0;
       }
        cout<<s[i][j]<<"  ";

    }
        cout<<endl;
    }
    cout<<nagnum()<<endl;
    cout<<av<<endl;
    return 0;
}

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-06-06 07:27
    关注

    问题比较多啊,递归理解还不到位

    #include <iostream>
    #include <ctime>
    #include <stdlib.h>
    using namespace std;
    int s[10][10]={};
    int sumnum=0;
    float av=0;
    int nagnum(int i,int j)
    {
    	if(s[i][j]<0)
    		sumnum+=1;
    	else
    	{
    		if(s[i][j]>0)
    			av+=s[i][j];
    	}
    	
    	j++;
    	if(j>= 10)
    	{
    		i++;
    		j=0;
    	}
    	if(i>=10)
    	{
    		av = av/100.0;
    		return sumnum;
    	}
    	return nagnum(i,j);
    }
    int main()
    {
    	srand(int(time(0)));
    	for(int i=0;i<10;i++)
    	{
    		for(int j=0;j<10;j++)
    	{
    		if(rand()%10>0.4)
    			s[i][j]=rand()%100;
    		else
    		{
    			s[i][j]=-rand()%100;
    			if (s[i][j]==(-0))
    				s[i][j]=0;
    		}
    		cout<<s[i][j]<<"  ";
    	}
    	cout<<endl;
    	}
    	cout<<nagnum(0,0)<<endl;
    	cout<<av<<endl;
    
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗