#include stdio.h
创新互联建站是一家专注于成都网站设计、成都网站制作与策划设计,绿春网站建设哪家好?创新互联建站做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:绿春等地区。绿春做网站价格咨询:18980820575
int main(void) {
int arr[3][4];
int max,min; /*记录最大值与最小值*/
int mini=0,minj=0,maxi=0,maxj=0; /*记录最大值与最小值的坐标*/
int i,j,temp;
printf ("请输入矩阵内容(3行4列):\n");
for (i=0;i3;i++)
for (j=0;j4;j++)
scanf ("%d",arr[i][j]);
max=arr[0][0];
min=arr[0][0];
for (i=0;i3;i++) {
for (j=0;j4;j++)
if(arr[i][j]max) {
maxi = i;
maxj = j;
}
if(arr[i][j]min) {
mini = i;
minj = j;
}
}
printf ("原矩阵最小值为arr[%d][%d]=%d;最大值为arr[%d][%d]=%d。\n",mini,minj,arr[mini][minj],maxi,maxj,arr[maxi][maxj]);
temp = arr[mini][minj]; /*交换最小值与最大值*/
arr[mini][minj] = arr[maxi][maxj];
arr[maxi][maxj] = temp;
printf ("最小值与最大值交换后矩阵:\n");
for (i=0;i3;i++) {
for (j=0;j4;j++)
printf ("%d\t",arr[i][j]);
printf ("\n");
}
return 0;
}
运行结果
这道题只要求把最小值和最大值交换到首尾,所以只要求最小值和最大值就可以了,不用排序。
#include
stdio.h
int
main()
{
int
n,
a[10];
int
i,
max
=
0,
min
=
0;
scanf("%d",
n);
for(i
=
0;
i
n;
i++)
{
scanf("%d",
a[i]);
if(a[max]
a[i])
max
=
i;
if(a[min]
a[i])
min
=
i;
}
i
=
a[0];
a[0]
=
a[min];
a[min]
=
i;
if(max
==
0)
max
=
min;
i
=
a[n
-
1];
a[n
-
1]
=
a[max];
a[max]
=
i;
for(i
=
0;
i
n;
i++)
printf("%d
",
a[i]);
return
0;
}
#includestdio.h
int max(int*a,int*b)
{
int t;
t=*a;
*a=*b;
*b=t;
return (*a*b)?*a:*b;
}
void main()
{
int a,b;
scanf("%d%d",a,b);
printf("max=%d\n",max(a,b));
printf("a=%d,b=%d\n",a,b);
}