| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 502 人关注过本帖
标题:下面这个程序哪里出错了
只看楼主 加入收藏
asd奥斯达速
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2014-11-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
下面这个程序哪里出错了
#include <stdio.h>
void exchange(int *x, int *y, int n)
{
    int z ,i;
    for (i=1; i<=n; i++)
    {
        z=*(x+i);
        *(x+i)=*(y+i);
        *(y+i)=z;
    }
}
int main ()
{
    int a[]={0}, b[]={0} ,n ,i, *p1,*p2;
  printf ("输入数组个数n\n");
    scanf ("%d",&n);
    printf("请输入数组a的所有值\n");
    for (i=1; i<=n ; i++)
    {
    scanf ("%d",&a[i]);
    p1=&a[i];
    p1++;
    }
    printf ("请输入数组b的所有值\n");
    for (i=1; i<=n ; i++)
    {
    scanf ("%d",&b[i]);
    p2=&b[i];
    p2++;
    }
    exchange(p1, p2,n );
    printf ("交换后a的值为:");
    for (i=1; i<=n ;i++)
    printf ("%d",a[i]);
    printf("\n");
    printf("交换后b的值为:\n");
    for (i=1; i<=n ; i++);
    printf  ("%d",b[i]);
    printf ("\n");
}
搜索更多相关主题的帖子: exchange include 
2014-12-06 11:41
lu3664198
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:185
注 册:2014-11-16
收藏
得分:10 
int a[]={0}   已经把数组的长度定为1,之后的a[n]当然错了
数组第一个元素是a[0],n个元素,最后一个为a[n-1]
最后一个for();<~多了一个";"
数组名就是一个指针,指向数组第一个元素,直接传递a,b就行了,交换可以这样写
for (i=0; i<n; i++)
{
z=a[i];
a[i]=b[i];
b[i]=z;
}

wwwwwww...~~;
本人为大一新生,说的不好不要拍我 ~ ( ̄~ ̄) ;
2014-12-06 17:18
asd奥斯达速
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2014-11-15
收藏
得分:0 
回复 2 楼 lu3664198
能不能给一个正确的程序,我修改后还是不行!!
2014-12-07 13:25
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:10 
程序代码:
#include <stdio.h>
#define N 99999999

void exchange(int *x, int *y, int n) {
    int z , i;

    for(i = 0; i < n; i++) {
        z = *(x + i);
        *(x + i) = *(y + i);
        *(y + i) = z;
    }
}

int main(void) {
    int a[N] = {0}, b[N] = {0} , i, n, *pa, *pb;
    pa=a;
    pb=b;

    printf("输入数组中元素的个数:\n");
    scanf("%d", &n);

    printf("请输入数组a的所有值:\n");
    for(i = 0; i < n; i++) {
        scanf("%d", (pa+i));
    }

    printf("请输入数组b的所有值:\n");
    for(i = 0; i < n; i++) {
        scanf("%d", (pb+i));
    }

    exchange(pa, pb, n);

    printf("交换后a的值为:\n");
    for(i = 0; i < n; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");

    printf("交换后b的值为:\n");
    for(i = 0; i < n; i++) {
        printf("%d ", b[i]);
    }
    printf("\n");

    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2014-12-07 15:44
asd奥斯达速
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2014-11-15
收藏
得分:0 
哦哦,谢谢,我懂了!!
2014-12-07 15:50
某先生0422
Rank: 2
等 级:论坛游民
帖 子:6
专家分:12
注 册:2014-11-20
收藏
得分:0 
exchange(p1, p2,n );
    printf ("交换后a的值为:");
    for (i=1; i<=n ;i++)
    printf ("%d",a[i]);
    printf("\n");
    printf("交换后b的值为:\n");
    for (i=1; i<=n ; i++);此处居然有';'号。。
    printf  ("%d",b[i]);
    printf ("\n");
2014-12-07 18:50
快速回复:下面这个程序哪里出错了
数据加载中...
 
   



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

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