| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 867 人关注过本帖
标题:传值 引用 传地址调用
取消只看楼主 加入收藏
yslief
Rank: 5Rank: 5
来 自:水泊
等 级:职业侠客
帖 子:57
专家分:340
注 册:2016-11-14
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
传值 引用 传地址调用
5*5矩阵, 输入数据,  交换m,n行的数据(n,m为输入的数字小于5) ,最后重新输出交换m和n行的矩阵. 但是下面的代码不能达到交换m,n行的目的.
问题应该出在自定义函数fun上, 数据传入的只是形参,请大家帮看看

程序代码:
#include<stdio.h>
int fun(int a[][5], int m, int n);

main()
{
    int i,j,m,n,t;
    int a[5][5];
    printf("请输入5*5行列数据\n");
    
    for(i=0; i<5; i++)
    {
        for(j=0; j<5; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    
    printf("\n请输入m,n的值:");
    scanf("%d%d", &m, &n);
    
    fun(a, m, n);
    for(i=0; i<5; i++,printf("\n"))
    {
        for(j=0; j<5; j++)
        {
            printf("%d",a[i][j]);
        }
    }
}



int fun(int a[][5] ,int m, int n)
{
    int *p1[5] ;
    p1[0] = a[0];
    int *p2;
    if(m-1>5|| n-1>5)
    {
        return 0;
    }
    
    else
    {
        p2 = p1[m-1];      
        p1[n-1]= p1[m-1];
        p1[m-1]= p2;
        return 1;
    }
}
2016-11-30 00:51
yslief
Rank: 5Rank: 5
来 自:水泊
等 级:职业侠客
帖 子:57
专家分:340
注 册:2016-11-14
收藏
得分:0 
交换操作是在局部函数进行的,  为什么操作结果还是能影响到主函数
2016-11-30 12:00
yslief
Rank: 5Rank: 5
来 自:水泊
等 级:职业侠客
帖 子:57
专家分:340
注 册:2016-11-14
收藏
得分:0 
谢谢大家!
2016-11-30 19:36
快速回复:传值 引用 传地址调用
数据加载中...
 
   



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

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