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;
}
}
}