| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:和树上的程序几乎一模一样,结果却大相径庭
只看楼主 加入收藏
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
结帖率:66.67%
收藏
 问题点数:0 回复次数:7 
和树上的程序几乎一模一样,结果却大相径庭
这是一个实现两个数组元素交换功能的小程序,书上定义的函数是void change(int a[],int b[],n),调用函数时用的是change(a,b,5);我只是没有设置n这一个形参,但是我在程序一开头定义了一个符号常量N=5,另外算法是一样,只有函数不一样。具体程序如下:
#include<stdio.h>
#define N 5
void exchange(int a[],int b[])
{
    int i,t;
    for(i=0;i<N;i++)
    {
        t=a[i];
        a[i]=b[i];
        b[i]=t;
    }
}
int main(void)
{
    int d[N],e[N],i;
    printf("请输入数组d[%d]的%d个元素:\n",N,N);
    for(i=0;i<N;i++)
    {
        scanf("%d",&d[i]);
    }
    printf("请输入数组e[%d]的%d个元素:\n",N,N);
        for(i=0;i<N;i++)
    {
        scanf("%d",&d[i]);
    }
    exchange(d,e);
    printf("交换元素后数组d和数组e分别为:\n");
    for(i=0;i<N;i++)
    {
        printf("%d ",d[i]);
    }
    printf("\n");
    for(i=0;i<N;i++)
    {
        printf("%d ",e[i]);
    }
    printf("\n");
    return 0;
}
我的运行结果如下:
请输入数组d[5]的5个元素:
0 1 2 3 4
请输入数组e[5]的5个元素:
5 6 7 8 9
交换元素后数组d和数组e分别为:
-858993460 -858993460 -858993460 -858993460 -858993460
5 6 7 8 9
Press any key to continue
疑惑中,求解答
搜索更多相关主题的帖子: exchange include 元素 
2013-06-19 15:28
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:0 
void exchange(int *a,int *b)
{
    int i,t;
    for(i=0;i<N;i++)
    {
        t=*(a+i);
        *(a+i)=*(b+i);
        *(b+i)=t;
    }
}
交换函数用这个试试。使用函数调用方式对数据进行操作,要想改变实参的话就必须使用指针操作才行

[ 本帖最后由 wyw19880809 于 2013-6-19 15:55 编辑 ]
2013-06-19 15:53
暗杠
Rank: 1
等 级:新手上路
帖 子:4
专家分:7
注 册:2013-6-10
收藏
得分:0 
新手。自学有很多困难,求大师指导啊, QQ65215015
2013-06-19 15:54
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
#include<stdio.h>
#define N 5
void exchange(int a[],int b[])
{
    int i,t;
    for(i=0;i<N;i++)
    {
        t=a[i];
        a[i]=b[i];
        b[i]=t;
    }
}
int main(void)
{
    int d[N],e[N],i;
    printf("请输入数组d[%d]的%d个元素:\n",N,N);
    for(i=0;i<N;i++)
    {
        scanf("%d",&d[i]);                    <----------自己看看!!
    }
    printf("请输入数组e[%d]的%d个元素:\n",N,N);
        for(i=0;i<N;i++)
    {
        scanf("%d",&d[i]);                     <-------------自己看看!!!e[i]没定义!!!!!
    }
    exchange(d,e);
    printf("交换元素后数组d和数组e分别为:\n");
    for(i=0;i<N;i++)
    {
        printf("%d ",d[i]);
    }
    printf("\n");
    for(i=0;i<N;i++)
    {
        printf("%d ",e[i]);
    }
    printf("\n");
    return 0;
}
2013-06-19 16:13
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
还一模一样???
细心点吧!
2013-06-19 16:14
ceoooec
Rank: 2
等 级:论坛游民
威 望:1
帖 子:26
专家分:61
注 册:2013-6-11
收藏
得分:0 
e[5]没有赋值
2013-06-19 17:19
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
上次就说过楼主了,这次又。。。
你到底哪来的自信一次次说和书上的一样?

总有那身价贱的人给作业贴回复完整的代码
2013-06-19 17:29
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
收藏
得分:0 
本人粗心至极,实在不好意思,还是要谢谢各位的关照,小弟日后必当认真编程,少发这种粗心的帖子
2013-06-19 20:38
快速回复:和树上的程序几乎一模一样,结果却大相径庭
数据加载中...
 
   



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

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