A. 请大家帮忙用c语言编个程序,“有一个三乘四的矩阵,求编程求出其中值最大和最小的元素,输出其值及其所在
# include <stdio.h>
main()
{ int max,maxi,maxj,min,mini,minj,a[3][4],i,j;
printf("input numbers:\n');
for(i=0,i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=min=a[0][0];
for(i=0,i<3;i++)
for(j=0;j<4;j++)
{ if(a[i][j]>max)
{ max=a[i][j];
maxi=i+1;
maxj=j+1;
}
if(a[i][j]<min)
{ min=a[i][j];
mini=i+1;
minj=j+1;
}
}
printf("最大值为%d,在第%d行,第%d列;\n最小值为%d,在第%d行,第%d列。\n",max,maxi,maxj,min,mini,minj);
}
满意请采纳!
B. C语言求出一个3×4的矩阵每一行的最大值
1、/打开Dev-c++软件,点击“新建源代码”。
C. c语言 有一个3*4的矩阵,求所有元素中的最大值
核心代码:
int m[3][4] = ("你的矩阵");
int max=m[0][0];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
if(max < m[i][j]) max = m[i][j];
}
}
printf("最大值为%d",max);
D. 用c语言编写输出3*4的矩阵,求最后一个最小值并显示行号和列号
#include<stdio.h>
int main() {
const unsigned row=3, col=4;//定义行列数
unsigned minx, miny;//最小值的行列
int min;//最小值
int nums[row][col];
for (unsigned i = 0; i < row; i++)//录入数据
{
for (unsigned j = 0; j < col; j++)
{
scanf("%d",&nums[i][j]);
}
}
min = nums[0][0];//初始化最小值为第一行第一列的数
minx = 1;
miny = 1;
for (unsigned i = 0; i < row; i++)//遍历数组找出最小值
{
for (unsigned j = 0; j < col; j++)
{
if (nums[i][j] <= min)
{
min = nums[i][j];
minx = i+1;
miny = j+1;
}
}
}
printf("最小值为:%d,位于第%u行%u列", min, minx, miny);//输出数据
return 0;
}
E. c语言编写一个程序,实现一个3×4矩阵转置。
思路:定了两个二维数组分别存储转置前后的矩阵,接着for循环依次转置即可。
//参考代码
#include<stdio.h>
intmain()
{
inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},b[4][3];
inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
b[j][i]=a[i][j];
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
printf("%2d",b[i][j]);
printf(" ");
}
return0;
}
/*
运行结果:
159
2610
3711
4812
*/
F. C语言编程:有一个3*4的矩阵,找出其中最小的那个元素,以及它所在的行和列。
假设矩阵是mat[3][4]:
minElem=mat[0][0];
elemX=0;
elemY=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
if(mat[i][j]<minElem)
{
minElem=mat[i][j];
elemX=i;
elemY=j;
}
}
}
printf("最小的是%d,它位于第%d行,第%d列。\n",minElem,elemX,elemY);
这样可以吗?有意见可以更改
G. C语言数组问题 有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和例号
执行max=a[0][0]后max=1
if(a[i][j]>max)此时max值不能确定,因为前面有两个循环嵌套,执行完
if(a[i][j]>max) //此处i j值不确定,不知道max是否比a[i][j]大
{
max=a[i][j]; //此处i j值不确定,max可能会变化
row=i;
colum=j;
}
后会执行 j++ ,如果此时 j<=3 则继续执行 if 语句,如果 j>3 则执行 i++;j=0;
然后再次执行 if(a[i][j]>max) 语句 ,此时的i、j都不能确定,此前max的值有可能变化了
H. C语言:编写程序,计算两个3×4矩阵的和
#include<stdio.h>
int main()
{
int a[3][4],b[3][4],c[3][4];
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf(" ");
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
scanf("%d",&b[i][j]);
printf(" ");
for(int i=0;i<3;i++)
for(int j=0;j<4;j++)
{
c[i][j]=a[i][j]+b[i][j];
printf("%d",c[i][j]);
if(j!=3)
printf(" ");
else
printf(" ");
}
return 0;
}
I. 求C语言流程图:一个3*4的矩阵,要求编写一个程序找出每一行中的最大值并与第一列交换!明天考拜托了!急!
#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;
}
J. 用C语言编程,输入一个3*4整数矩阵并且求各行元素之和和各列元素之和
1.
#include <stdio.h>
int main()
{
int a[3][4]={0};
int i,j,max,max_i,max_j;
printf("Please input a 3X4 matrix:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
max_i=max_j=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(a[i][j]>max)
{
max=a[i][j];
max_i=i;
max_j=j;
}
printf("The max is %d,row %,col %d\n",max,max_i,max_j);
}
2.
#include <stdio.h>
int main()
{
char a[100]={0};
int i,count=0;
printf("Please input a string:");
gets(a);
for(i=0;a[i]!='\0';i++)
if(a[i]==' ')
count++;
printf("The string contents %d space\n",count);
}