指针和数组的问题。。头都大了。
利用指针 编程,对 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次都失败了。。。