| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 626 人关注过本帖
标题:[c++]还是那个纠结数组问题数组问题啊~求解T-T,不懂还是不懂!!
只看楼主 加入收藏
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:3 
[c++]还是那个纠结数组问题数组问题啊~求解T-T,不懂还是不懂!!
题目是:
设有有序(值从小到大)的两组数据,讲这两组数据有序合并(合并过程数组始终保持有序)。
我想用那个选择排序的方法来做。(上次问过一次可是我还是不懂。啊啊啊啊啊
我写出来是这样的:
程序代码:
#include <iostream>
using namespace std;
void main()
{
    int i,j,k,t;
    int a[4],b[7],c[12];
    cout<<"请输入a组数的5个数值(取值从大到小):"<<endl;
    for(i=0;i<4;i++)
        cin>>a[i];
    cout<<"请输入b组数的8个数值(取值从大到小):"<<endl;
    for(j=0;j<7;j++)
        cin>>b[j];
   
    for(k=0;k<12;k++)
    for(j=k+1;j<11;j++)
    for(i=j+1;i<10;i++)
           
          if(a[i]>b[j])
          {t=a[i];a[i]=c[k];c[k]=t;}
          if(a[i]<b[j])
          {t=b[i];a[i]=c[k];c[k]=t;}
       
            cout<<"数组c:"<<endl;
            for(k=0;k<12;k++)
                cout<<c[k]<<" ";
            cout<<endl;

}

可是它输出的时候不对。全部是很大位数的数字。T-T求老师啊~我纠结了好几天了。555555...
2011-05-10 23:53
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
程序代码:
#include <iostream>
using namespace std;
void main()
{
    int i,j,k,t;
    int a[4],b[7],c[11];
    cout<<"请输入a组数的4个数值(取值从大到小):"<<endl;
    for(i=0;i<4;i++)
        cin>>a[i];
    cout<<"请输入b组数的7个数值(取值从大到小):"<<endl;
    for(j=0;j<7;j++)
        cin>>b[j];
  
    for(k=0;k<11;k++)
    for(j=k+1;j<7;j++)
    for(i=j+1;i<4;i++)  //三个for,数组都越界了
         { 
          if(a[i]>b[j])
          {t=a[i];a[i]=c[k];c[k]=t;}
          if(a[i]<b[j])
          {t=b[i];a[i]=c[k];c[k]=t;}
          }
      
            cout<<"数组c:"<<endl;
            for(k=0;k<11;k++)
                cout<<c[k]<<" ";
            cout<<endl;

}

   唯实惟新 至诚致志
2011-05-11 08:14
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
数组凡是出怪数都是越界了。一但看到,应该很容易定位问题所在。
2011-05-12 11:38
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:7 
题目是说两个数组有序合并成一个数组?
定义数组 a[4],b[7],c[11]
把a数组和b数组里面的书赋给c,然后在c数组中重新按需要的顺序排列。
不知道这么理解对不对。
然后楼主的代码里面:
cout<<"请输入a组数的5个数值(取值从大到小):"<<endl;
    for(i=0;i<4;i++)
        cin>>a[i];
    cout<<"请输入b组数的8个数值(取值从大到小):"<<endl;
    for(j=0;j<7;j++)
        cin>>b[j];

定义的数组a是4个数的,怎么能输入5个??
b数组也是同样的问题。
定义数组时: 比如 int a[5]; 这时候数组a就表示含有5个整数。
然后使用数组元素时: 比如 t=a[4];表示把a数组里面的第5个元素的值赋给t。

Einmal ist keinmal
2011-05-12 13:28
快速回复:[c++]还是那个纠结数组问题数组问题啊~求解T-T,不懂还是不懂!!
数据加载中...
 
   



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

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