| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 448 人关注过本帖
标题:有个异常处理没找到,请大家帮忙看下
只看楼主 加入收藏
o0慢节奏0o
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-3-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
有个异常处理没找到,请大家帮忙看下
要求:求二维数组中各行或各列的和。当输入字符R或r时调用函数求各行的和,当输入字符C或c时,调用函数求各列的和;所求和数按一一对应的方式放在一个一维数组中。
说明:
1.    建立一个二维数组并输入值。
2.    调用函数求各行的和与各列的和。
3.    建立一个一维数组存放各行的和或各列的和,并通过函数调用输出一维数组的值。

#include<iostream>
using namespace std;
class juzhen
{
public:
    juzhen()
    {
        cout<<"请输入行数和列数:"<<endl;
        cin>>n>>m;
        int i,j;
        p=new int*[n];
        for(i=0;i<n;i++)
        {
            p[i]=new int[m];
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
            {
                cout<<"请输入第"<<i+1<<"行第"<<j+1<<"列元素:"<<endl;
                cin>>p[i][j];
            }
        }
    r=new int[n];
    c=new int[m];
    }
    ~juzhen()
    {
        delete[]p;
        delete[]r;
        delete[]c;
    }
    int *sumr();
    int *sumc();
    void display(char a);
private:
    int n,m;
    int **p;
    int sum;
    int *r;
    int *c;
};
int *juzhen::sumr()
{
    int i,j;
    for(i=0;i<n;i++)
    {
        for(sum=0,j=0;j<m;j++)
        {
            sum+=p[i][j];
        }
        r[i]=sum;
    }
    return r;
}
int *juzhen::sumc()
{
    int i,j;
    for(j=0;j<m;j++)
    {
        for(sum=0,i=0;i<n;i++)
        {
            sum+=p[i][j];
        }
        c[j]=sum;
    }
    return c;
}
void juzhen::display(char a)
{
    int i,j;
    if((a=='r')||(a=='R'))
    {
        sumr();
        for(i=0;i<n;i++)
        {
            cout<<"第"<<i+1<<"行各元素之和为:"<<r[i]<<endl;
        }
    }
    else if((a=='c')||(a=='C'))
    {
        sumc();
        for(j=0;j<m;j++)
        {
            cout<<"第"<<j+1<<"列个元素之和为"<<c[j]<<endl;
        }
    }
}
int main()
{
    juzhen a;
    char x;
loop:
    cout<<"若求矩阵各行和请输入R,若求矩阵各列和请输入C:"<<endl;
    cin>>x;
    if((x=='r')||(x=='R')||(x=='c')||(x=='C'))
    {
        a.display(x);
    }
    else
    {
        cout<<"输入错误,请重新输入"<<endl;
        goto loop;
    }
    return 0;
}

            
搜索更多相关主题的帖子: include public 
2010-06-26 13:27
o0慢节奏0o
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-3-28
收藏
得分:0 
有人会么。。困扰我好久了
2010-06-26 18:51
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:20 
你要找什么异常??到是你2级指针的释放不对。
for(int i = 0; i < n; i++)   //你new的是一组,析构也应该是一组
        {
            delete[]p[i];
        }
2010-06-26 21:26
o0慢节奏0o
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-3-28
收藏
得分:0 
应该怎么释放?
用VC++6.0测试正常,用visual studio2010测试有异常处理
2010-06-26 21:43
o0慢节奏0o
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-3-28
收藏
得分:0 
额 少看了部分 我去试试看
2010-06-26 21:44
o0慢节奏0o
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-3-28
收藏
得分:0 
回复 3楼 最近不在
是指针释放错误 修改好了 谢谢
2010-06-26 21:48
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:0 
回复 5楼 o0慢节奏0o
2010这么强大?能够自己检测错误?我没用过,能说说嘛?
2010-06-26 21:51
o0慢节奏0o
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2010-3-28
收藏
得分:0 
回复 6楼 o0慢节奏0o
出错的话有提示出错类型 我上次是提示的异常处理 不知道算不算
2010-06-27 13:29
快速回复:有个异常处理没找到,请大家帮忙看下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020056 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved