C语言上机指导(第十一次实验)(附答案)
说明:本次题目前3题课堂必须完成;
全部题目均在课堂完成的找老师验证,均正确有额外加分。
写一个sort( )函数完成对3个整型变量按由小到大的顺序排序,要求使用变量的引用,3个变量在主函数中输入和输出。
提示:可以写一个交换两个数的函数change,函数原型为void change(int &x,int &y),change函数调用swap函数完成3个数的排序。注意使用引用和指针的不同。
#include
using namespace std;
int main()
{void sort(int &,int &,int &);
int a,b,c;
cout<
cin>>a>>b>>c;
cout<
sort(a,b,c); //调用排序函数
cout<
return 0;
}
void sort(int &i,int &j,int &k) //对3个数进行排序
{ void change(int &,int &);
if (i>j) change(i,j);
if (i>k) change(i,k);
if (j>k) change(j,k);
}
void change(int &x,int &y) //交换2个数
{ int temp;
temp=x;
x=y;
y=temp;
}
写一个函数move( ),将一个3×3矩阵转置,要求使用指针完成,矩阵的输入输出在主函数完成。
提示:矩阵转置即为行列元素的互换(a[i][j]=a[j][i]),先定义一个二维数组用双重循环给数组赋值,然后调用move函数完成转置,再输出转置后的数组。move函数的参数为一指向整型变量的指针*point,将point指向数组首地址后(注意使用p=&a[0][0]),对第i行第j列的元素可以表示为*(pointer+3*i+j),对第j行第i列的元素可以表示为*(pointer+3*j+i)。
#include
using namespace std;
int main()
{void move(int *);
int a[3][3],*p,i,j;
cout<
for (i=0;i<3;i++)
for (j=0;j<3;j++)
cin>>a[i][j];
cout<
for (i=0;i<3;i++)
{for (j=0;j<3;j++)
cout<
cout<
}
p= &a[0][0]; //指针p指向a[0][0]的地址,此处还可以写为p=a[0];但因为是二维数组,所以不可以写为p=a;具体参看指向二维数组的指针。
move(p); //调用move函数转置矩阵
cout<
for (i=0;i<3;i++)
{for (j=0;j<3;j++)
cout<