c语言实验题,大家帮个忙啦

来源:百度知道 编辑:UC知道 时间:2024/06/27 19:56:31
编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n n),形成n n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。
例如:原始数据: n=4 结果数据:
1 2 3 4 8 11 14 16
3 5 9 10 3 5 9 10
8 11 14 16 1 2 3 4
15 2 7 6 15 2 7 6
要求:
(1)本题中所涉及到的循环都采用for语句。
(2)在输入/输出时进行必要的说明。
(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。
(4)输入一个n n矩阵(假定最大值与最小值不在同一行上),输出原始矩阵数据(按上述矩阵形式)。
(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。
(6)修改程序,对最大值与最小值可能出现在一行上的情况做出说明。
(7)对n为3,4,5时,输入数组元素是要注意哪些问题?执行程序,检查程序的正确性。

#include<stdio.h>
void main()
{ int n=3,m,i,j,x=0,y=0,a[10][10],b[10];
printf("Please enter 'n'.(n<=10)\n");
scanf("%d",&n);
printf("Please input the square:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
m=a[0][0];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(m>a[i][j])
{m=a[i][j];
x=i;
}
m=a[0][0];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(m<a[i][j])
{m=a[i][j];
y=i;
}
for(i=0;i<n;i++)
b[i]=a[x][i];
for(i=0;i<n;i++)
a[x][i]=a[y][i];
for(i=0;i<n;i++)
a[y][i]=b[i];
printf("Answer is:\n");
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}程序如上,实现了第一行与第三行互换,