|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
int a[6][6],b[1][1],c[1][1],d[1][1];
int max,min,zjz;
int i,n,m,x,y=0,X=0,Y=0,e=0,f=0;
max = b[0][0],min=c[0][0],zjz=d[0][0];//zjz是中间值的意思
printf("输入一个正整数");
scanf_s("%d", &n);
printf("输入二维数组");
for ( i = 0; i < n; i++)
{
for ( m = 0; m < n; m++)
{
scanf_s("%d", &a[i][m]);
}
}
for ( i = 0; i < n; i++)
{
for ( m = 0; m < n; m++)
{
if (a[i][m]>max)
{
max = a[i][m];
X = i;
Y = m;
}
}
}//查找数组的最大值
for (i = 0; i < n; i++)
{
for (m = 0; m < n; m++)
{
if (a[i][m] > min)
{
max = a[i][m];
x = i;
y = m;
}
}
}//查找数组的最小值
a[e][f] = a[x][y];
a[x][y] = a[X][Y];
for ( i = 0; i < n; i++)
{
for ( m = 0; m <n; m++)
{
printf("%d", a[i][m]);
}
}
}
3) 程序功能:输入一个正整数n(1≤n≤6)和n阶方阵A,交换方阵A中的最大值与最小值位置。假定方阵A中的最大值与最小值都唯一。
输入数组为1 2
3 4
答案为4234
求大神解答
- #include<stdio.h>
- int main()
- {
- int c , d , k , n , m[36] , max , min ;
- printf("输入一个正整数\n") ;
- scanf("%d" , & n) ;
- printf("输入二维数组\n") ;
- for(k = 0 ; k < n * n ; k ++) scanf("%d" , & m[k]) ;
- for(k = 0 , c = 0 , d = 0 , max = m[c] , min = m[d] ; k < n * n ; k ++) {
- if(m[k] > max) {
- c = k ;
- max = m[k] ;
- } else if (m[k] < min) {
- d = k ;
- min = m[k] ;
- }
- }
- m[d] = max ;
- m[c] = min ;
- printf("\n") ;
- printf("输出二维数组\n") ;
- for(k = 0 ; k < n * n ; k ++) {
- if(! (k % n)) {
- if(k) printf("\n") ;
- } else {
- printf(" ") ;
- }
- printf("%d" , m[k]) ;
- }
- }
复制代码
编译、运行实况:
- C:\Bin>cl x.c
- 用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 16.00.30319.01 版
- 版权所有(C) Microsoft Corporation。保留所有权利。
- x.c
- Microsoft (R) Incremental Linker Version 10.00.30319.01
- Copyright (C) Microsoft Corporation. All rights reserved.
- /out:x.exe
- x.obj
- C:\Bin>x
- 输入一个正整数
- 6
- 输入二维数组
- 1 2 3 4 5 6
- 7 8 9 10 11 12
- 13 14 15 16 17 18
- 19 20 21 22 23 24
- 25 26 27 28 29 30
- 31 32 33 34 35 36
- 输出二维数组
- 36 2 3 4 5 6
- 7 8 9 10 11 12
- 13 14 15 16 17 18
- 19 20 21 22 23 24
- 25 26 27 28 29 30
- 31 32 33 34 35 1
- C:\Bin>
复制代码
|
|