自己写了个
#include
#include
int swap(int b[4])
{
int i,j,k,t;
j=b[0]; //保留第一个元素
for(i=1;i<4;i++)
{if(j>b[i]) k=i;} //保存最小元素的下标
if(k!=0)
{t=b[k];
b[k]=b[0]; //第一个元素和最小元素进行交换
b[0]=t;
}
return 0;
}
void main()
{ int a[3][4];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
swap(&a[i]); //传递每行首地址
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%3d",a[i][j]);//打印3行4列
printf("\n");
}
要是填空题。。。就如下
void main( )
{ int a[3][4],i,j,*p=a[0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",p++);
for(p=&a[0][0];p swap(p);
p=a[0] ;
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
printf("%3d",*p++);
printf("\n");}
}
swap(int *p1)
{ int min,i,*p2=p1,*p3;
p3=p1 ;
for(i=0;i<4;i++)
{ if(*p2<*p3)
p3=p2;
p2++ ;
}
min=*p1;*p1=*p3;*p3=min;
}
swap(int *p1 )
main( )
{ int a[3][4],i,j,*p=a[0];
for(i=0;i<3;i++)
for(j=0;j<4;j++) scanf(“%d”,p++);
for(p=&a[0][0];p swap(p);
p=a[0] ;
for(i=0;i<3;i++)
{ for(j=0;j<4;j++) printf(“%3d”,*p++);
printf(“\n”);}
}
swap(int *p1)
{ int min,i,*p2=p1,*p3;
p3=p1 ;
for(i=0;i<4;i++)
{ if(*p2<*p3) p3=p2; p2++ ;
}
min=*p1;*p1=*p3;*p3=min;
}
(15)填空题