| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 558 人关注过本帖
标题:求高手 数组问题
只看楼主 加入收藏
when159357
Rank: 2
等 级:论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:7 
求高手 数组问题
定义两个非递减数组 然后比较大小  从小到大的放到第三个数组  小弟写的程序 得不出正确结果
#include<stdio.h>
int main(void)
{
   int a[5]={1,1,2,2,3};
   int b[5]={2,2,3,3,4};
   int c[10];
   int i,j,k=0;
   while(k<10)
   {
       for(i=0;i<5;i++)
       for(j=0;j<i;j++)
       if(a[i]<b[j]){c[k]=a[j];
       k++;}
       else if(b[j]=a[i]){c[k]=a[i];
       k++;}
       else {c[k]=b[j];
       k++;}
   }
   for(k=0;k<10;k++)
   printf("%d\n",c[k]);
   
   return 0;
}
2010-03-21 15:28
when159357
Rank: 2
等 级:论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
收藏
得分:0 
#include<stdio.h>
int main(void)
{
   int a[5]={1,1,2,2,3};
   int b[5]={2,2,3,3,4};
   int c[10];
   int i=1;
   int j=1;
   int k=0;
   while((i<=5)&&(j<=5))
   if(a[i]<=b[j]){
       c[k]=a[i];
       k++;
       i++;
   }
   else {
   c[k]=b[j];
   k++;
   j++;
   }
   for(k=0;k<10;k++)
   printf("%d\n",c[k]);
   return 0;
}
我换了个方法  还是不正确。。。
2010-03-21 15:35
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:20 
int main(void)
{
    int a[5]={1,1,2,2,3};
    int b[5]={2,2,3,3,4};
    int c[10];
    int i=0,j=0,k=0;
    while(k<10)
    {
        if (i == 5 && j < 5)
        {
            for (i = j; i < 5; i++)
            {
                c[k++] = b[i];
            }
        } else if (j == 5 && i < 5)
        {
            for (j = i; j < 5; j++)
            {
                c[k++] = a[j];
            }
        }else
        {
            if (a[i] < b[j])
            {
                c[k++] = a[i++];
            }else if (a[i] > b[j])
            {
                c[k++] = b[j++];
            }else
            {
                c[k++] = a[i++];
                c[k++] = b[j++];
            }
        }

    }
    for(k=0;k<10;k++)
        printf("%d\n",c[k]);
   
    return 0;
}
假设a,b已经是升序排列
2010-03-21 16:13
hziee
Rank: 4
等 级:业余侠客
帖 子:64
专家分:257
注 册:2010-3-12
收藏
得分:0 
先把两个数组合并到第三个数组中,再对第三个数组进行排列不是要简单很多?
2010-03-21 16:24
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
#include<stdio.h>
int main(void)
{
    int a[5]={1,1,2,2,3};
    int b[5]={2,2,3,3,4};
    int c[10];
    int i,j,k;
    for (i=0;i<10;i++)
    {if (i<5)
    c[i]=a[i];
    else c[i]=b[i-5];
    }
    for (i=0;i<10;i++)
    {
        for (j=i;j<10;j++)
        {
            if(c[i]>=c[j])
            {
                k=c[i];c[i]=c[j];c[j]=k;
            }
        }
    }
    for (i=0;i<10;i++)
    {printf("%2d",c[i]);
    }return 0;
}
2010-03-21 17:03
when159357
Rank: 2
等 级:论坛游民
帖 子:50
专家分:71
注 册:2009-11-11
收藏
得分:0 
那我想在子函数里实现这个功能  该怎么传递这三个数组呢   在主函数里定义好 a[],b[]然后怎么能传递进子函数呢?
2010-03-21 17:06
csj_65
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:163
注 册:2010-3-12
收藏
得分:0 
这简单,在子函数中把两个数组合并然后排序就行了,然后传回排序后的数组的起始地址指针,因为函数返回值只能是一个参数,不好是数组。你可以通过*(p+i)的方式来打印排列好的数组。
2010-03-21 19:19
sbso_1988
Rank: 2
等 级:论坛游民
帖 子:10
专家分:12
注 册:2010-3-16
收藏
得分:0 
#include <stdio.h>
#define DEBUG 0

int main(void)
{
    int a[5] = {23,4,22,6,1};
    int b[5] = {13,9,12,60,100};
    int c[10];
    int i;
    int j;
    int temp;

    for (i = 0; i < 10; i++)
    {
        if (i < 5)
            c[i] = a[i];
        else
            c[i] = b[i - 5];
    }
    for (j = 0; j < 9; j++)
        for (i = 0; i < 9 - j; i++)
            if (c[i] > c[i+1])
            {
                temp = c[i];
                c[i] = c[i+1];
                c[i+1] = temp;
            }
#if DEBUG
    for (i = 0; i < 9; i++)
    {
        for (j = i + 1; j < 10; j++)
        {
            if (c[i] > c[j])
            {
                temp = c[i];
                c[i] = c[j];
                c[j] = temp;
            }
        }
    }
#endif
    for (i = 0; i < 10; i++)
        printf("%4d\t",c[i]);
    putchar(10);
    return 0;
}
2010-03-21 20:37
快速回复:求高手 数组问题
数据加载中...
 
   



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

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