| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12688 人关注过本帖
标题:【求助】如何输入未知长度的数组啊
取消只看楼主 加入收藏
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:5 
【求助】如何输入未知长度的数组啊
想要输入一串任意长度的数组
自己写了一点。。
程序代码:
int b[100];
    cout<<"请输入一组整数,数量在100以内"<<endl;
    for(int i=0;i<100;i++)
    {
        cin>>b[i];
        if(b[i]=='over')
            break;

    }
输入over后结束循环 = =,
运行后。。。出现的奇怪的事。。。
。。。话说怎么发图啊
想截图发上来
搜索更多相关主题的帖子: 长度 输入 
2009-09-10 09:36
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
各位大人~~请为小的解惑吧~~~
谢谢了~~~
2009-09-10 10:47
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
谢谢指教~~~~
原来我输出时候出现的奇怪事物是内存泄漏。。。。。
2009-09-10 12:41
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
还是有问题。。。。
整个代码是这样的
程序代码:
#include "stdafx.h"
using namespace std;
class ARR
{
    int m;                                                       //数组实际元素个数
    int a[100];                                                  //存放原始数组以及结果数组
    int t[100];                                                  //存放每个数据重复次数
public:
    ARR(int c[],int size)                                         
    {
        m=size;
        for(int i=0;i<m;i++)
        {
            a[i]=c[i];
            t[i]=0;
            
        }
    }
    void stl();                                                 //把数组元素从小到大排序
    void delsame();                                             //完成数组a中相同元素的删除工作 以及统计重复次数工作
    void show()                                                 //输出数组
    {

        for(int i=0;i<m;i++)
        {
            cout<<a[i]<<"   ";
        }
        cout<<endl;
    }
    void showT()
    {
        for(int i=0;i<m;i++)
        {
            cout<<a[i]<<"出现了 "<<t[i]<<"次";
            if(((i+1)%3)==0)
                cout<<endl;
        }
    }
};
void ARR::stl()                                     //类外定义函数 完成数组排序工作
{
    int i,j,temp;
    for(i=0;i<m-1;i++)
    {
        for(j=i+1;j<m-1;j++)
        {
            if(a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
        }
    }
};
void ARR::delsame()                                  //在类的外部定义函数,完成数组a中相同元素的删除工作
{
    int i,j;
    for(i=0;i<m-1;i++)
    {
        t[i]+=1;                                    //统计该元素出现次数
        if(a[i]==a[i+1])
        {
            for(j=i+1;j<m-1;j++)
            {
                a[j]=a[j+1];
            }
            m--;
            i--;
        }
    }
};


int _tmain(int argc, _TCHAR* argv[])
{
    int b[100];
    int i;
    cout<<"请输入一组整数,数量在100以内"<<endl;
    for(i=0;i<100;i++)
    {
        cin>>b[i];
        if(b[i]=='p')
            break;

    }
    ARR v(b,i);
    v.show();
    v.delsame();
    v.show();
    v.showT();
    return 0;
}
想的是输入任意长度的数
排序后把相同的元素删除

修改后还是会出现内存泄露。。。。

2009-09-10 12:49
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
int _tmain(int argc, _TCHAR* argv[])
{
    int b[100];
    int i;
    cout<<"请输入一组整数,数量在100以内"<<endl;
    for(i=0;i<100;i++)
    {
        cin>>b[i];
        if(b[i]=='p')
            break;

    }
    ARR v(b,i);    //这里原来是 ARR v(b,sizeof(b)/sizeof(b[0]))  
    v.show();
    v.delsame();
    v.show();
    v.showT();
    return 0;
}
2009-09-10 12:55
liang890806
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2009-7-28
收藏
得分:0 
= =
重点是ARR v(b,i)这么写为什么会内存泄漏
错在哪里
如何解决

2009-09-10 14:52
快速回复:【求助】如何输入未知长度的数组啊
数据加载中...
 
   



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

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