标题:指针和数组的问题。。头都大了。
取消只看楼主
austral
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2011-3-30
结帖率:100%
已结贴  问题点数:10 回复次数:0 
指针和数组的问题。。头都大了。



利用指针 编程,对 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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-337492-1-1.html




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

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