程序填空题:行指针传参
利用行指针传参实现二维数组的每一行按从小到大排序排序,(排序算法采用选择法排序)
#include <stdio.h>
void sort(int (*a)[4]);
int main()
{
int a[3][4],i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",*);
for(i=0;i<3;i++)
sort(a+i);
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%5d",*());
printf("\n");
}
return 0;
}
void sort(int (*a)[4])
{
int i,j,k,tmp;
for(i=0;i<3;i++)
{
k=i;
for(j=i+1;j<4;j++)
{
if(*()>*())
k=j;
}
if(k!=i)
{
;
;
;
}
}
}
### 输入样例:
in
5 2 1 4
6 7 1 5
4 5 7 1
### 输出样例:
out
1 2 4 5
1 5 6 7
1 4 5 7
答案:
第1空:(a+i)+j
第2空:*(a+i)+j
第3空:*a+k
第4空:*a+j
第5空:tmp=*(*a+i)
第6空:*(*a+i)=*(*a+k)
第7空:*(*a+k)=tmp
#include <stdio.h>
void sort(int (*a)[4]);
int main()
{
int a[3][4],i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",*);
for(i=0;i<3;i++)
sort(a+i);
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%5d",*());
printf("\n");
}
return 0;
}
void sort(int (*a)[4])
{
int i,j,k,tmp;
for(i=0;i<3;i++)
{
k=i;
for(j=i+1;j<4;j++)
{
if(*()>*())
k=j;
}
if(k!=i)
{
;
;
;
}
}
}
### 输入样例:
in
5 2 1 4
6 7 1 5
4 5 7 1
### 输出样例:
out
1 2 4 5
1 5 6 7
1 4 5 7
答案:
第1空:(a+i)+j
第2空:*(a+i)+j
第3空:*a+k
第4空:*a+j
第5空:tmp=*(*a+i)
第6空:*(*a+i)=*(*a+k)
第7空:*(*a+k)=tmp