同样适用数组首地址作为参数,在调用函数中使用指针,指定到要求的元素,并对其输出。
#include <stdio.h>
#include <stdlib.h>
void print_anycol(int *arr,int row,int col,int any);
int main()
{
int myarr[3][4]=
{
{ 1, 2, 3, 4},
{ 3, 6, 9,12},
{ 9,18,27,36}
};
printf("数组中的元素有:\n");
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
printf("%4d",myarr[i][j]);
printf("\n");
}
printf("\n");
int any;
printf("要输出第几列的元素:");
scanf("%d",&any);
print_anycol(&myarr[0][0],3,4,any);
system("pause");
return 0;
}
void print_anycol(int *arr,int row,int col,int any)
{
if(any<=0 || any>col) //0<any<col检查输入列数的有效性
{
printf("不存在着一列!\n");
getchar(); //等待用户输入一个字符
system("exit");
}
else
{
printf("第%d列的元素有:\n",any);
for(int i=0;i<row;i++)
printf("%3d\n",*(arr+col*i+any-1)); //i控制行,col控制有多少列,any-1就是在每一行的第几列位置
}
}