| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 382 人关注过本帖
标题:指针和数组的问题。。头都大了。
只看楼主 加入收藏
austral
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2011-3-30
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
指针和数组的问题。。头都大了。



利用指针 编程,对 5X5 矩阵 a 中任意 两行进行 交换,交 换时
不能使用数组.

#include<stdio.h>
struct line   /* 一个包含一行5个数的结构体 */
{
 int num[5];
};

void input(struct line m[5])    /* 输入矩阵的数据 */
{
 int i,j;
 printf("input the data of matrix:\n");
 for(i=0;i<5;++i,j=0)
 {for(j=0;j<5;++j)
 scanf("%d",&m[i].num[j]);
 }
}

void exchange(int b,int c,struct line *a) /*交换行*/
{
 struct line temp=*(a+(b-1));
 *(a+(b-1))=*(a+(c-1));
 *(a+(c-1))=temp;
}

void output(struct line *a)   /* 输出结果 */
{
 int i,j;
 printf("the data of matrix:\n");
 for(i=0,j=0;i<5;++i,j=0)
 {for(;j<5;j++)
 printf("%d ",(a+i)->num[j]);
 printf("\n\n");
 }
}

void main()
{
 int L1,L2;
 struct line x[5];
 input(x);
 output(x);
 printf("please input two lines that u'll exchange:");
 scanf("%d",&L1);
 scanf("%d",&L2);
 exchange(L1,L2,x);
 output(x);
 system("pause");
}

 编译通过了。。

 但是看不懂 求大大们讲解 不胜感激!!

 如果原型用这个 void sawp((int *p1 , int *p2, int n))
  那个exchange 怎么改? 我编译了N次都失败了。。。
搜索更多相关主题的帖子: 结构体 
2011-04-21 21:30
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:10 
void sawp((int *p1 , int *p2, int n)) 函数体在哪里?给我看看
我猜是这么写的吧:
程序代码:
void sawp(int *p1 , int *p2, int n) {
    int tmp;
    for (; n > 0; n--) {
        tmp = *p1;
        *(p1++) = *p2;
        *(p2++) = tmp;
    }
}

然后呢?你要在 exchange(...) 里面调用 swap ?

[ 本帖最后由 voidx 于 2011-4-21 22:12 编辑 ]
2011-04-21 21:35
tang_ke
Rank: 2
来 自:西安电子科技大学
等 级:论坛游民
帖 子:45
专家分:46
注 册:2010-10-12
收藏
得分:0 
swap里的那个n代表什么意思?
2011-04-21 22:10
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 3楼 tang_ke
看我的代码,大概就是这么个意思
2011-04-21 22:13
快速回复:指针和数组的问题。。头都大了。
数据加载中...
 
   



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

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