求C语言流程图:一个3*4的矩阵,要求编写一个程序找出每一行中的最大值并与第一列交换!明天考拜托了!急!

作者&投稿:邢章 (若有异议请与网页底部的电邮联系)
C语言程序:有一个3*4的矩阵,要求编写一个程序找出每一行中的最大值并与第一列交换~

到底是行数是3 还是列数是3?
我姑且认为是行数是3 然后把一行4个数字里找出最大的放在这一行的第一个
如果是这样子 写个循环函数就好了
假设矩阵数值保存在 QZ[3][4]中
int rows=3,cols=4;
int itemp=0;//假设矩阵里的值是整数
for(int i=0;i<rows;i++)
{//遍历每一行
for(int j=cols-1;j>0;j--)
{//从最后一列开始 把大的数字移到前一列
if(QZ[rows][cols]>QZ[rows][cols-1])
{//如果后一列数字大于前一列数字 交换
itemp = QZ[rows][cols-1];
QZ[rows][cols-1] = QZ[rows][cols];
QZ[rows][cols]=itemp;
}
}
}
这样应该能解决你的问题吧 当然我没去试 没有纯C的环境 而且这个实在不算难

#include
main(void)
{
int a[3][4],j,i,k,max=0,t;
for(j=0;j<3;j++)
for(i=0;i<4;i++)
scanf("%d",&a[j][i]);
for(j=0;j<3;j++)
{
for(i=0;i<4;i++)
if(max<a[j][i])
{
max=a[j][i];
k=i;
}
{t=a[j][k];a[j][k]=a[j][0];a[j][0]=t;}
}

printf("
");
for(j=0;j<3;j++)
{
for(i=0;i<4;i++)
printf("%d ",a[j][i]);
printf("
");
}
}

#include <cmath>
#include <iostream>
using namespace std;
void swap(double &a,double &b)
{
double temp=a;
a=b;
b=temp;
}

int InverseMatrix(double *matrix,const int &row)
{
double *m=new double[row*row];
double *ptemp,*pt=m;

int i,j;

ptemp=matrix;
for (i=0;i<row;i++)
{
for (j=0;j<row;j++)
{
*pt=*ptemp;
ptemp++;
pt++;
}
}

int k;

int *is=new int[row],*js=new int[row];

for (k=0;k<row;k++)
{
double max=0;
//全选主元
//寻找最大元素
for (i=k;i<row;i++)
{
for (j=k;j<row;j++)
{
if (fabs(*(m+i*row+j))>max)
{
max=*(m+i*row+j);
is[k]=i;
js[k]=j;
}
}
}

if (0 == max)
{
return 1;
}

//行交换
if (is[k]!=k)
{
for (i=0;i<row;i++)
{
swap(*(m+k*row+i),*(m+is[k]*row+i));
}
}

//列交换
if (js[k]!=k)
{
for (i=0;i<row;i++)
{
swap(*(m+i*row+k),*(m+i*row+js[k]));
}
}

*(m+k*row+k)=1/(*(m+k*row+k));

for (j=0;j<row;j++)
{
if (j!=k)
{
*(m+k*row+j)*=*((m+k*row+k));
}
}

for (i=0;i<row;i++)
{
if (i!=k)
{
for (j=0;j<row;j++)
{
if(j!=k)
{
*(m+i*row+j)-=*(m+i*row+k)**(m+k*row+j);
}
}
}
}

for (i=0;i<row;i++)
{
if(i!=k)
{
*(m+i*row+k)*=-(*(m+k*row+k));
}
}
}

int r;
//恢复
for (r=row-1;r>=0;r--)
{
if (js[r]!=r)
{
for (j=0;j<row;j++)
{
swap(*(m+r*row+j),*(m+js[r]*row+j));
}
}
if (is[r]!=r)
{
for (i=0;i<row;i++)
{
swap(*(m+i*row+r),*(m+i*row+is[r]));
}
}
}

ptemp=matrix;
pt=m;
for (i=0;i<row;i++)
{
for (j=0;j<row;j++)
{
*ptemp=*pt;
ptemp++;
pt++;
}
}
delete []is;
delete []js;
delete []m;

return 0;
}
void input(double *pData,int n)
{
cout<<"输入矩阵元素:"<<endl;
int i,j;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
cin>>pData[i*n+j];
}
}
}

void OutPut(double *pData,int n)
{
int i,j;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
cout<<pData[i*n+j]<<" ";
}
cout<<endl;
}
}
int main()
{
double *pData;
int n;
cout<<"输入矩阵的大小:";
cin>>n;
pData = new double[n*n];
input(pData,n);
cout<<"矩阵为:"<<endl;
OutPut(pData,n);
InverseMatrix(pData,n);
cout<<"逆矩阵为:"<<endl;
OutPut(pData,n);
delete []pData;
return 0;
}

  Y--Yes   N--No



c语言中,由键盘输入一个3×4(3行4列)的矩阵,输出矩阵中的鞍点(即在矩阵...
答:printf("input:\n");for(i=0;i<3;i++){ for(j=0;j<4;j++){ scanf("%d",&a[i][j]);} } for(i=0;i<3;i++){ max1=0;max2=0;k=0;for(j=0;j<4;j++){ if(a[i][j]>max1){ max1=a[i][j];k=j;} } printf("行最大值max1:%d\n",max1);//1.求出行...

C语言问题:一个3行4列的规阵,从键盘输入前俩行数据,然后将前两行按列...
答:这是我的理解。。

c语言编程 已知一3*4个矩阵X和一个4*3矩阵Y,从键盘提供数据,编写程序...
答:for(i = 0; i < 3; i++)for(j = 0; j < 4; j ++)scanf("%d", &X[i][j]);for(i = 0; i < 4; i++)for(j = 0; j < 3; j ++)scanf("%d", &Y[i][j]);// 将X×Y的结果存入C中 for(i = 0; i < 3; i ++) { for(j = 0; j < 3; j++) { ...

C语言:输入一个二维数组(3*4矩阵),输出从左上到右下最佳路径(经过节点...
答:include <stdio.h> include<dos.h> int main(void){ int a[3][4],i,j,k,m,n;int step[6],st[6],min=30000;int x=0,y=0,sum=0;for(i=0;i<3;i++) /*输入数据的部分(每两个数据间用回车分隔)*/ for(j=0;j<4;j++){ gotoxy(j*5+1,i+1); /*移动光标到特定输入...

C语言 A是一个3*4矩阵 B是一个4*5矩阵 编程求A*B得到新的矩阵C.并输出...
答:for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<4;i++)for(j=0;j<5;j++)scanf("%d",&b[i][j]);for(i=0;i<3;i++){ for(j=0;j<5;j++){ c[i][j]=0;for(k=0;k<4;k++)c[i][j]+=a[i][k]*b[k][j];printf("%d",c[...

求用C语言编写一个算术表达式的算法,如输入3*4+8-2键入Enter键输出18...
答:include<iostream.h>//#define MaxLen 100//存储空间int tran(char str[], char expr[]) //将中缀表达式转换成后缀表达式 if(tran(str,expr)==0)//原来表达式,后缀表达式{ int st[100]; //转化过程使用的过度栈 char ch; int i=0,exindex=0,stindex=-1; //i是str下标,e...

C语言1*2*3*4*5的程序怎么写?
答:include "stdio.h"void main(){ int a=1,i;for(i=1;i<=5;i++){ a=a*i;} printf("%d",a);}

写一个程序(1*2*3*4...*n=n!)括号内...求 加急...C语言的
答:include<stdio.h> int fun(int n){ int temp=1;for(;n>=1;n--){ temp=temp*n;} return temp;} void main(){ //计算n!int n;printf("请输入n的值:");scanf("%d",&n);int temp;temp=fun(n);printf("%d!=%d\n",n,temp);} 已经调试过,可以正确输入输出。望采纳 ...

求一个输出菱形的c语言的流程图,“行”一个循环,然后把菱形分为上三角...
答:{for(b=1;b<=4-a;b++) printf(" ");for(c=1;c<=a*2-1;c++) printf("*");printf("\n);}for(a=1;a<=3;a++){for(b=!;b<=a;b++) printf(" ");for(c=1;c<=7-a*2;c++) printf("*");printf("\n");}}这是一个输出一个菱形的程序,哪个高手给一个流程图啊,紧急需求。不...

...4x-3 输入一个x値输出对应y的値 要用流程图来表示 急求
答:include<stdio.h> main(){ double x,y;scanf("%f",&x);if(x<0) y=3*x+4;else if(x==0) y=0;else y=4*x-3;printf("%f",y);}