| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 402 人关注过本帖, 1 人收藏
标题:请看看这个小程序
只看楼主 加入收藏
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
结帖率:75%
收藏(1)
 问题点数:0 回复次数:3 
请看看这个小程序
#include"stdio.h"
main(void)
{
    int i,j,k=0,data1[10],data2[10],data3[20];
    printf("请输入10个数(从小到大):");
    for(i=0;i<10;i++)
        scanf(" %d",&data1[i]);
    printf("请输入10个数(从小到大):");
    for(j=0;j<10;j++)
        scanf(" %d",&data2[j]);
    i=0;j=0;
    while(i<10&&j<10)
    {
        if(data1[i]<data2[j])
        {
            data3[k]=data1[i];
            k++;
            i++;
        }
        else
        {
            data3[k]=data2[j];
            k++;
            j++;
        }
    }
    if(i<10)
        for(;i<10;i++)
        {
            data3[k]=data1[i];
            k++;
        }
    if(j<10)
        for(;j<10;j++)
        {
            data3[k]=data2[j];
            k++;
        }
     for(k=0;k<20;k++)
        printf(" %d",data3[k]);
}
我先解释下代码的大意,请输入两组从小到大的数据,然后把两组数据再在data3按从小到大的顺序排列出来
我不明白的地方时,红色部分内容,去掉不行吗?起什么作用呢?
搜索更多相关主题的帖子: include 
2009-10-09 18:32
Chost
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2009-9-21
收藏
得分:0 
  不行
  因为只有在下面2中情况下while才会结束:(1):data1[i]执行到data1[9]后,data2[j]没有执行完,这时循环结束应该把data2[]剩下的数据补充到data3[]
  后面。就是您写的红字部分的第2个if语句; 同理可能就是data2[j]执行到data2[9]后,data1[i]还没有执行完,这时循环结束应该把data1[]剩下的数据补充到 data3[]
  后面。就是您写的红字部分的第1个if语句。
         
2009-10-09 20:02
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
看看这个特殊的例子:
data[1]={1,2,3,4,5,6,7,8,9,10};
data[2]={11,12,13,14,15,16,17,18,19,20};

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-10-09 20:21
壮志在我胸
Rank: 3Rank: 3
来 自:邯郸
等 级:论坛游侠
威 望:1
帖 子:158
专家分:125
注 册:2009-9-7
收藏
得分:0 
谢谢二楼,我明白了,我加你好友了,如果你看见了,加我吧,呵呵,以后有问题咱共同探讨啊
2009-10-09 21:49
快速回复:请看看这个小程序
数据加载中...
 
   



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

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