❶ c语言:有一个3*4的矩阵,要求编写一个程序找出每一行中的最大值并与第一列交换
#include <stdio.h>
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("\n");
for(j=0;j<3;j++)
{
for(i=0;i<4;i++)
printf("%d ",a[j][i]);
printf("\n");
}
}
❷ C语言输入3x4矩阵,输出最大、最小值的行号和列号,最大值能正常输出,最小值无法输出,怎么改都不行
原程序max和min赋值写在整个数组输入赋值值之前,因此其中存放的并不是数组中a[0][0]的值,而是在赋值前的某个值,这个导致出错。可以考虑将max和min的赋值语句写到scanf循环之后。
#include"stdio.h"
int main(){int i, j, maxrow = 0, maxcolum = 0, minrow = 0, mincolum = 0,a[3][4];
printf("Please input number for a[3][4]:
");
for (i = 0; i < 3; i++)for (j = 0; j < 4; j++)scanf_s("%d",&a[i][j]);
printf("
"); maxrow=maxcolum=minrow=mincolum=0;
for (i = 0; i < 3; i++){
for (j = 0; j < 4; j++)printf("%-2d ", a[i][j]);
printf("
");
}
for (i = 0; i < 3; i++){
for (j = 0; j < 4; j++){
if (a[i][j] > a[maxrow][maxcolum] ){ maxrow = i;maxcolum = j;}
else if (a[i][j]<a[minrow][mincolum]){minrow = i;mincolum = j;} //两个条件是互斥的
}
}
printf("max=%d,maxrow=%d,maxcolum=%d
",
a[maxrow][maxcolum],maxrow+1,maxcolum+1);
printf("min=%d,minrow=%d,mincolum=%d
",
a[minrow][mincolum], minrow+1, mincolum+1);
getchar();
return 0;
}
❸ 用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;
}
❹ 请大家帮忙用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);
}
满意请采纳!
❺ 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;
}
❻ 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);
这样可以吗?有意见可以更改
❼ C语言求出一个3×4的矩阵每一行的最大值
1、/打开Dev-c++软件,点击“新建源代码”。
❽ 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的环境 而且这个实在不算难
❾ c语言随机产生一个3×4的矩阵
#include<stdio.h>
#include<time.h>
intmain()
{
srand((unsigned)time(0));
inta[3][4];
inti,j;
for(i=0;i<3;++i)
{
for(j=0;j<3;++j)
{
a[i][j]=rand();//没有限定取值范围
printf("%d",a[i][j]);
}
a[i][j]=rand();
printf("%d ",a[i][j]);//按每两个数之间一个空格、行末无空格输出
}
return0;
}
❿ 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
*/