C语言-习题8 指针1

1. (10分) 矩阵转置

题目描述
编写函数,实现将一个3×3的矩阵转置。
矩阵输入及输出都在主函数中完成。

输入描述
输入一个3×3的int型整数

输出描述
输出转置矩阵

输入样例
23 42 44
16 35 81
25 14 45

输出样例
23 16 25
42 35 14
44 81 45

用户代码

#include<stdio.h>
void zz(int (*p1)[3],int (*p2)[3]);
int main()
{
	
	int i,j,a[3][3]={0},b[3][3]={0},k=0;
	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
			scanf("%d",&a[i][j]);
	zz(b,a);
	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
		{
			printf("%-3d",b[i][j]);
			k++;
			if(k%3==0)
				printf("\n");
		}
	return 0;
}
void zz(int (*p1)[3],int (*p2)[3])
{
	int i=0,j=0;
	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
			*(p1[j]+i)=*(p2[i]+j);
}

2. (12分) 冒泡法排序(指针)

题目描述
编写函数,使用指针实现冒泡法排序。
数据输入输出在主函数中完成

输入描述
输入6个int型数

输出描述
输出按由小到大的排序结果

输入样例
34 78 -123 41 90 19

输出样例
-123 19 34 41 78 90

用户代码

#include<stdio.h>
int main()
{
	void sort(int *x,int n);
	int a[6]={0},i,*p=a;
	for(i=0;i<6;i++)
	    scanf("%d",&a[i]);
	sort(p,6);
	for(p=a;p<a+6;p++)
		printf("%d ",*p);
	return 0;
}
void sort(int *x,int n)
{
	int i,j,k,t;
	for(i=n-1;i>0;i--)
	{
		k=i;
		for(j=i;j>-1;j--)
			if(x[j]>x[k])
				k=j;
		if(k!=i)
		{
			t=x[i];
			x[i]=x[k];
			x[k]=t;
		}
	}
}
发布了37 篇原创文章 · 获赞 10 · 访问量 740

猜你喜欢

转载自blog.csdn.net/qq_43608850/article/details/104320765