题目描述
注:本题只需要提交填写部分的代码
/*C*/
#include<stdio.h>
const int N=100;
int max(int x,int y){
return x>=y?x:y;
}
int main()
{
int a[N][N],b[N][N],i,j,maxv,*p;
int n;
scanf("%d",&n);
for(i=0; i<n; i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
maxv=a[0][0];
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++)
{
int temp=*(a[i]+j);
/*******************************
请在该部分补充缺少的代码
********************************/
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%d ",b[i][j]);
printf("\n");
}
printf("Max:%d\n",*p);
return 0;
}
给定一个n阶矩阵,要求输出其转置矩阵,并将其最大值输出;
输入
输入一个整型n(1<n<=99),然后输入n*n个整数
输出
输出对应的n*n的转置矩阵以及里面的最大值
样例输入
2
1 3
2 1
样例输出
1 2
3 1
Max:3
参考代码
#include<stdio.h>
const int N=100;
int max(int x,int y)
{
return x>=y?x:y;
}
int main()
{
int a[N][N],b[N][N],i,j,maxv,*p;
int n;
scanf("%d",&n);
for (i=0; i<n; i++)
for (j=0;j<n;j++)
scanf("%d",&a[i][j]);
maxv=a[0][0];
for (i=0;i<n-1;i++)
{
for (j=i+1;j<n;j++)
{
int temp=*(a[i]+j);
*(b[i]+j)=*(a[j]+i);
*(b[j]+i)=temp;
b[0][0]=a[0][0];
b[j][j]=a[j][j];
maxv=max(maxv,a[i][j]);
maxv=max(maxv,a[i+1][j]);
p=&maxv;
}
}
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
printf("%d ",b[i][j]);
printf("n");
}
printf("Max:%dn",*p);
return 0;
}
解析
暂无