| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5118 人关注过本帖
标题:定义一个一维数组,数组大小未知,将在程序运行过程中得到,如何实现?
只看楼主 加入收藏
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:12 
定义一个一维数组,数组大小未知,将在程序运行过程中得到,如何实现?
例如:
#include<iostream>
#include<fstream>
using namespace std;
#define M 3
#define N 2
#define P 2
#define n (M+1)*(N+1)*(P+1)
int main()
{
    int i,j,k,count=0,m=0;
    cout<<M<<"  "<<N<<"  "<<P<<endl;
    cout<<n<<endl;
    int Ap[n+1];
    int a[n][n];
        /*此处为稀疏矩阵的元素确定*/
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            cout<<a[i][j]<<" ";
            if(a[i][j]!=0)
                m+=1;
        }
        cout<<endl;
    }
    ofstream outfile1;
    outfile1.open("D:\\2013IBM\\coefficient\\Array of A\\a[i][j].txt",ios::out);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            outfile1<<a[i][j]<<" ";
        }
        outfile1<<endl;
    }
    outfile1<<endl;
    outfile1.close();

    int Ai[m];  //数组大小m这样定义不正确,怎么办?m为矩阵a中的非零个数个数
    double Ax[m];
    Ap[0]=0;
    for(j=0;j<n;j++)
    {
        for(i=0;i<n;i++)
        {
            if(a[i][j]!=0)
            {
                count+=1;
                Ai[n-1]=i;
                Ax[n-1]=a[i][j];
            }
            Ap[j+1]=count;
        }
    }
    for(j=0;j<n+1;j++)
    {
        cout<<Ap[j]<<" ";
    }
    cout<<endl;
    ofstream outfile2;
    outfile2.open("D:\\2013IBM\\coefficient\\Array of A\\Ap.txt",ios::out);
    for(j=0;j<n+1;j++)
    {
        outfile2<<Ap[j]<<" ";
    }
    outfile2<<endl;
    outfile2.close();

    for(j=0;j<count;j++)
    {
        cout<<Ai[j]<<" ";
    }
    cout<<endl;
    ofstream outfile3;
    outfile3.open("D:\\2013IBM\\coefficient\\Array of A\\Ai.txt",ios::out);
    for(j=0;j<count;j++)
    {
        outfile3<<Ai[j]<<" ";
    }
    outfile3<<endl;
    outfile3.close();

    for(j=0;j<count;j++)
    {
        cout<<Ax[j]<<" ";
    }
    cout<<endl;
    ofstream outfile4;
    outfile4.open("D:\\2013IBM\\coefficient\\Array of A\\Ax.txt",ios::out);
    for(j=0;j<count;j++)
    {
        outfile4<<Ax[j]<<" ";
    }
    outfile4<<endl;
    outfile4.close();
}
搜索更多相关主题的帖子: include count 如何 元素 
2015-08-08 16:18
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:20 
动态内存分配

一片落叶掉进了回忆的流年。
2015-08-08 16:26
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
具体点,动态内存分配的话,也需要在定义一维数组时指定一个数组大小才可以?如果不指定数组大小可以不?
2015-08-08 16:34
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
看你写的代码像C++ 但又一看这是C语言版 那么问题来了:

你的需求是什么

是想用C语言呢 还是C++ 如果是C++ 直接用容器就可以了
2015-08-08 16:38
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
这是C++啊,不是C语言!
2015-08-08 16:49
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
容器这一章我还不怎么会!
2015-08-08 16:49
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:10 
女王大人是想告诉楼主,这儿是C语言
2015-08-08 18:19
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
这没啥影响的,大家都能看到!呵呵,好吧!我了解了!
2015-08-08 18:27
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:10 
不是C语言
2015-08-09 00:01
sunbeam_
Rank: 3Rank: 3
来 自:我家
等 级:论坛游侠
威 望:1
帖 子:31
专家分:113
注 册:2015-8-2
收藏
得分:10 
回复 3楼 w2009w
用malloc动态分配只要一个指针就行啦  不用一开始定义一个数组

爱好计算机的电气学渣
2015-08-09 10:24
快速回复:定义一个一维数组,数组大小未知,将在程序运行过程中得到,如何实现? ...
数据加载中...
 
   



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

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