急求大家帮忙做个C语言题
1、找出一个二维数组中的“鞍点”,所谓“鞍点”,是指一个数组元素,该元素在其所在的行最大,而在其所在的列最小2、写一个函数,将一个4*5的矩阵转置】急求!!!!...
1、找出一个二维数组中的“鞍点”,所谓“鞍点”,是指一个数组元素,该元素在其所在的行最大,而在其所在的列最小
2、写一个函数,将一个4*5的矩阵转置
】
急求!!!! 展开
2、写一个函数,将一个4*5的矩阵转置
】
急求!!!! 展开
4个回答
展开全部
第一题:
#include <stdio.h>
void main()
{
//计算一个二维数组的鞍点(即行中最大,列中最小的数)
int i,j,m,n,p,max,a[4][3];
for(i=0;i<4;i++)//给数组赋值
{
printf("请输入第%d列元素:\n",i+1);
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
printf("您输入的数组是:\n");
for(i=0;i<4;i++)//输出数组元素
{
for(j=0;j<3;j++)
printf("%4d",a[i][j]);
printf("\n");
}
max=a[0][0];
for(i=0;i<=3;i++) //寻找鞍点
for(j=0;j<=2;j++)
if(a[i][i]>max)
{
max=a[i][j];
m=i;
n=j;
}
for(p=0;p<3;p++)
if(max>=a[p][n])
{
max=a[p][n];
}
m=p;
printf("鞍点:a[%d][%d]=%d\n",m,n,a[m][n]);
}
第二题:
#include <stdio.h>
void main()
{
int i,j,arr[4][5],brr[5][4];
printf("请输入数组(4*5)的每个元素:\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&arr[i][j]);
printf("您输入的数组是:\n");
for(i=0;i<4;i++) //输出原数组
{
for(j=0;j<5;j++)
printf("%5d",arr[i][j]);
printf("\n");
}
for(i=0;i<4;i++)//对数组进行行列转换
{
for(j=0;j<5;j++)
brr[j][i]=arr[i][j];
}
printf("转换后的数组是:\n");//输出转换后的数组
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
printf("%5d",brr[i][j]);
printf("\n");
}
}
#include <stdio.h>
void main()
{
//计算一个二维数组的鞍点(即行中最大,列中最小的数)
int i,j,m,n,p,max,a[4][3];
for(i=0;i<4;i++)//给数组赋值
{
printf("请输入第%d列元素:\n",i+1);
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
printf("您输入的数组是:\n");
for(i=0;i<4;i++)//输出数组元素
{
for(j=0;j<3;j++)
printf("%4d",a[i][j]);
printf("\n");
}
max=a[0][0];
for(i=0;i<=3;i++) //寻找鞍点
for(j=0;j<=2;j++)
if(a[i][i]>max)
{
max=a[i][j];
m=i;
n=j;
}
for(p=0;p<3;p++)
if(max>=a[p][n])
{
max=a[p][n];
}
m=p;
printf("鞍点:a[%d][%d]=%d\n",m,n,a[m][n]);
}
第二题:
#include <stdio.h>
void main()
{
int i,j,arr[4][5],brr[5][4];
printf("请输入数组(4*5)的每个元素:\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&arr[i][j]);
printf("您输入的数组是:\n");
for(i=0;i<4;i++) //输出原数组
{
for(j=0;j<5;j++)
printf("%5d",arr[i][j]);
printf("\n");
}
for(i=0;i<4;i++)//对数组进行行列转换
{
for(j=0;j<5;j++)
brr[j][i]=arr[i][j];
}
printf("转换后的数组是:\n");//输出转换后的数组
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
printf("%5d",brr[i][j]);
printf("\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面的程序都经过调试正确!!
1.
#define A 3 /*设置二维数组边界*/
#define B 3
#include<stdio.h>
void main()
{
int i,j,m,n,p,number=0;
int a[A][B];
for(i=0;i<A;i++) /*输入二维数组数据*/
for(j=0;j<B;j++)
scanf("%d",&a[i][j]);
for(i=0;i<A;i++) /*打印出二维数组*/
{
for(j=0;j<B;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
for(i=0;i<A;i++) /*扫描鞍点*/
{ m=0;
for(j=0;j<B;j++)
if(a[i][m]<=a[i][j]) m=j,p=i;
n=0;
for(i=0;i<A;i++)
if(a[n][m]>=a[i][m]) n=i;
{
if(p==n)
printf("第%d行鞍点是a[%d][%d]=%d\n",p+1,p+1,m+1,a[p][m]);}
number++;
}
if(number==0)
printf("没有鞍点!\n");
}
2.
void main()
{
int i,j,m,n,p,number=0;
int a[5][5],temp;
for(i=0;i<4;i++) /*输入二维数组数据*/
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++) /*打印出二维数组*/
{
for(j=0;j<5;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
for(i=0;i<4;i++) /*数组转置*/
for(j=i;j<5;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
for(i=0;i<5;i++) /*打印出转置后二维数组*/
{
for(j=0;j<4;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
}
1.
#define A 3 /*设置二维数组边界*/
#define B 3
#include<stdio.h>
void main()
{
int i,j,m,n,p,number=0;
int a[A][B];
for(i=0;i<A;i++) /*输入二维数组数据*/
for(j=0;j<B;j++)
scanf("%d",&a[i][j]);
for(i=0;i<A;i++) /*打印出二维数组*/
{
for(j=0;j<B;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
for(i=0;i<A;i++) /*扫描鞍点*/
{ m=0;
for(j=0;j<B;j++)
if(a[i][m]<=a[i][j]) m=j,p=i;
n=0;
for(i=0;i<A;i++)
if(a[n][m]>=a[i][m]) n=i;
{
if(p==n)
printf("第%d行鞍点是a[%d][%d]=%d\n",p+1,p+1,m+1,a[p][m]);}
number++;
}
if(number==0)
printf("没有鞍点!\n");
}
2.
void main()
{
int i,j,m,n,p,number=0;
int a[5][5],temp;
for(i=0;i<4;i++) /*输入二维数组数据*/
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++) /*打印出二维数组*/
{
for(j=0;j<5;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
for(i=0;i<4;i++) /*数组转置*/
for(j=i;j<5;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
for(i=0;i<5;i++) /*打印出转置后二维数组*/
{
for(j=0;j<4;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
void FindPoint(int a[][5])//a[x][y]
{
int tmp;
// int point_x;
int point_y;
bool findflag=false;
for(int i=0;i<5;i++)
{
//point_x=i;
point_y=0;
tmp=a[i][0];
for(int j=0;j<5;j++)
{
if(a[i][j]>tmp)
{
tmp=a[i][j];
// point_x=i;
point_y=j;
}
}
/////find max in a row,then check in the column
// printf("the max value in Row%d is:%d\n",i,tmp);
for(int m=0;m<5;m++)
{
if(tmp==a[i][m]){
findflag=false;
for(int k=0;k<5;k++)
{
if(k==i) continue;
if(tmp>a[k][m]){findflag=true;break;}
}
if(!findflag)printf("Find a point a[%d][%d]=%d\n",i,point_y,tmp);;
}
}
}
}
void reverseArray(int a[][5])
{
int tmp;
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
}
}
main()
{
int a[5][5]={
{1,2,3,4,5},{5,4,3,2,7},{1,1,2,3,9},{2,2,2,2,8},{6,6,6,6,9}
};
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
printf("%-4d",a[i][j]);
}
printf("\n");
}
FindPoint(a);
reverseArray(a);
printf("\n");printf("\n");printf("抲擵岪\n");
for(i=0;i<5;i++)
{
for( int j=0;j<5;j++)
{
printf("%-4d",a[i][j]);
}
printf("\n");
}
}
#include <stdlib.h>
void FindPoint(int a[][5])//a[x][y]
{
int tmp;
// int point_x;
int point_y;
bool findflag=false;
for(int i=0;i<5;i++)
{
//point_x=i;
point_y=0;
tmp=a[i][0];
for(int j=0;j<5;j++)
{
if(a[i][j]>tmp)
{
tmp=a[i][j];
// point_x=i;
point_y=j;
}
}
/////find max in a row,then check in the column
// printf("the max value in Row%d is:%d\n",i,tmp);
for(int m=0;m<5;m++)
{
if(tmp==a[i][m]){
findflag=false;
for(int k=0;k<5;k++)
{
if(k==i) continue;
if(tmp>a[k][m]){findflag=true;break;}
}
if(!findflag)printf("Find a point a[%d][%d]=%d\n",i,point_y,tmp);;
}
}
}
}
void reverseArray(int a[][5])
{
int tmp;
for(int i=0;i<5;i++)
{
for(int j=i+1;j<5;j++)
{
tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
}
}
main()
{
int a[5][5]={
{1,2,3,4,5},{5,4,3,2,7},{1,1,2,3,9},{2,2,2,2,8},{6,6,6,6,9}
};
for(int i=0;i<5;i++)
{
for(int j=0;j<5;j++)
{
printf("%-4d",a[i][j]);
}
printf("\n");
}
FindPoint(a);
reverseArray(a);
printf("\n");printf("\n");printf("抲擵岪\n");
for(i=0;i<5;i++)
{
for( int j=0;j<5;j++)
{
printf("%-4d",a[i][j]);
}
printf("\n");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2008-06-24
展开全部
追加分吧,就给你写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询