| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:[c++]数组问题数组问题啊~求解T-T
只看楼主 加入收藏
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:8 
[c++]数组问题数组问题啊~求解T-T
题目是:
设有有序(值从小到大)的两组数据,讲这两组数据有序合并(合并过程数组始终保持有序)。

我是这么想的就是把两组原始数据用一一维数组a,b表示,合并后的数据用一维数组c表示,
然后ia,ib分别表示当前待放入数组c中去的数组a,b的下标,ic指向数组c中当前存放数据的
下标。
我写好了a,b部分的。
可是c部分的我控制出来就不对~~求老师~万分感谢啊。~
程序代码:
#include <iostream>
using namespace std;
void main()
{
    int i;
    float a[4],b[7],c[11];
    cout<<"请输入a组数的5个数值(取值从大到小):"<<endl;
    for(i=0;i<4;i++)
        cin>>a[i];
    cout<<"请输入b组数的8个数值(取值从大到小):"<<endl;
    for(i=0;i<7;i++)
        cin>>b[i];
   
    for(i=0;i<11;i++)
    {    c[i]=a[0];
    if(a[i]>=a[0])c[i]=a[i];
    if(b[i]>=a[i])c[i]=b[i];
    cout<<c[i]<<endl;}
}


2011-05-07 21:22
Pirelo
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:118
专家分:550
注 册:2011-1-28
收藏
得分:2 
不是很明白楼主的意思,如果楼主的意思是:“仅仅需要输入两个有序数组a,b,然后期望将a,b数组中的元素放入数组c,并且使得c数组同样有序”
仅仅从功能实现的角度来看,可以将a,b数组的元素分别放入c数组中(此时可能的情况是:c的前四个元素是a的,后7个元素是b的),然后再将c数组排序即可。

如果楼主非得用ia,ib代表a,b两个数组将其元素分别进行逐一比较,然后符合条件者放入c中,如果楼主非要追求这样一个存放过程,则另当别论。但是算法带来的花销会比较大。



[ 本帖最后由 Pirelo 于 2011-5-7 22:56 编辑 ]
2011-05-07 22:54
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:606
专家分:2499
注 册:2009-4-8
收藏
得分:18 
数组a只能保存4个数值。b保存7个。
int arr[row];下标是从0开始,但是最大的合法下标是row-1。
程序代码:
int ai = 0, bi = 0;
    for(i=0;i<11;i++)
    {  
        if(ai == 4 || bi == 7) //数组a 或b的元素全部放入数组c中
            break;//那么跳出for循环
        if(a[ai] <= b[bi])
            c[i] = a[ai++];
        else
            c[i] = b[bi++];
        cout<<c[i]<<endl;
    }
//下面两个while只有一个会“执行”。
    while(ai<4)
        c[i++] = a[ai++];
    while(bi<7)
        c[i++] = b[bi++];



迭代的是人,递归的是神。
2011-05-08 08:16
fangdong65
Rank: 5Rank: 5
等 级:职业侠客
帖 子:73
专家分:301
注 册:2011-4-1
收藏
得分:0 
楼上正解!
2011-05-08 09:51
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
二楼的感觉没听说过归并排序。正好可以用楼主的代码学习一下~~
2011-05-08 11:13
Pirelo
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:118
专家分:550
注 册:2011-1-28
收藏
得分:0 
回复 5楼 pangding
惭愧,确实学习了
2011-05-08 15:35
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
回复 2楼 Pirelo
恩,这种方法好像比较方便一点~
2011-05-08 20:08
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
回复 3楼 lintaoyn
对哦!!!我怎么就想不出来呢。。。

智商问题啊
2011-05-08 20:08
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
怎么我输入以后不正确啊。
c组输出后只有5个数。
2011-05-08 20:19
快速回复:[c++]数组问题数组问题啊~求解T-T
数据加载中...
 
   



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

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