c语言输入矩阵
❶ c语言怎么输入矩阵
c语言矩阵分为两种:
第一种方法是动态的申请矩阵存储空间,该方法的好处有以下两点:
1.能够动态的申请和释放存储空间;
2.对于将矩阵作为函数返回值的情况,该方法具有独特的优势。
❷ c语言 从键盘输入一个4*4整数矩阵
#define N 4
void main()
{
int a[N][N];
int i,j,max,p,q;
printf("输入4*4矩阵:\n");
for(i=0;i<N;i++)
for (j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("输入的矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
max=a[1][0];
p=1;q=0;
for(i=1;i<N;i++)
for(j=0;j<i;j++)
if(a[i][j]>max)
{
max=a[i][j];
p=i;q=j;
}
a[q][p]=max;
printf("处理以后的矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++) printf("%4d",a[i][j]);
printf("\n");
}
}
❸ c语言程序编写 输入一个4×3的整数矩阵,输出其中最大值,最小值和他们的下标(行号和列号)
#include<stdio.h>
voidmain(){
intarr[4][3];
inti,j,min,max;
intr1=0,r2=0,c1=0,c2=0;
for(i=0;i<4;i++)//输进二维数组
for(j=0;j<3;j++){
printf("Inputarr[%2d][%2d]:",i,j);
scanf("%d",&arr[i][j]);
}
max=arr[0][0];//令最大值初始化为arr[0][0]
min=arr[0][0];//令最小值初始化为arr[0][0]
printf("
--------Arr[][]----------
");//打印二维数组
for(i=0;i<4;i++){
printf("
");
for(j=0;j<3;j++)
printf("%5d",arr[i][j]);
}
if(arr[i][j]>max){//当arr[i][j]>max时,令max=arr[i][j],r1=i;c1=j
max=arr[i][j];
r1=i;
c1=j;
}
if(arr[i][j]<min){//当arr[i][j]<min时,令min=arr[i][j],r2=i;c2=j
min=arr[i][j];
r2=i;
c2=j;
printf("
Thisismax:%2d,r:%2d,c:%2d",max,r1,c1);
printf("
Thisismin:%2d,r:%2d,c:%2d",min,r2,c2);
printf("
");
}
(3)c语言输入矩阵扩展阅读:
C语言编程时常犯的错误:
1 、书写标识符时,忽略了大小写字母的区别
main(){int a=5;printf("%d",A);}
编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
2 、忽略了变量的类型,进行了不合法的运算
代码如下:
main(){float a,b;printf("%d",a%b);}
%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。
3 、将字符常量与字符串常量混淆
char c;
c=”a”;
在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。
C规定以“”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a’和‘’,而把它赋给一个字符变量是不行的。
❹ 编程题C语言,在键盘上输入一个3行3列矩阵的各个元素的值
请你询问老师,这个题目本身是出错了的,因为在已有部分的基础上,是无法实现指定的功能的。必须要把左图中代码的第三行
void fun(int a[3][3])
修改为:
int fun(int a[3][3])
才行的。
再填充以下内容:
❺ c语言输入矩阵
scanf("%d,%d",&i,&j); //你输入时要带","比如 5,6 ,是"%d,%d"要求的,你可以去掉这个逗号然后输入 5 6 也行
❻ C语言程序输入一个4行4列的整型矩阵,显示这个矩阵的最大值、主对角线之和、辅对角线乘积及转置矩阵
话不多说上代码,转置不知道你想转什么样子的,就随便转了一些
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Advert(int (*PArr)[4])
{
int Temp=0;
for(int i=0;i<4;i++)
{
for(int j=i;j<4;j++)
{
Temp=PArr[i][j];
PArr[i][j]=PArr[j][i];
PArr[j][i]=Temp;
}
}
}
int main(void)
{
int Arr[4][4]={0};
// 初始化数组
srand((unsigned int)time(NULL));
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
Arr[i][j]=rand()%256;
}
}
//打印数组
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%-8d",Arr[i][j]);
}
puts("");
}
puts("");
int MajorDiagonalSum=0;
int SubdiagonalMul=1;
int MaxVal=Arr[0][0];
//打印数组
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(Arr[i][j]>MaxVal)
{
MaxVal=Arr[i][j];
}
if(i==j)
{
MajorDiagonalSum+=Arr[i][j];
printf("%-8d",Arr[i][j]);
}
else if(4-i-1==j){
printf("%-8d",Arr[i][j]);
SubdiagonalMul*=Arr[i][j];
}
else{
printf("%-8s"," ");
}
}
puts("");
}
puts("");
printf("最大值:%d\n主对角线只和:%d\n副对角线乘积:%d\n",MaxVal,MajorDiagonalSum,SubdiagonalMul);
puts("");
Advert(Arr);
//打印数组
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%-8d",Arr[i][j]);
}
puts("");
}
puts("");
return 0;
}
❼ c语言如何输入矩阵
c语言输入矩阵方法:先自己输入阶数,再输入各个元素。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
更多关于c语言如何输入矩阵,进入:https://m.abcgonglue.com/ask/c1a0aa1615836138.html?zd查看更多内容
❽ C语言,输入一个矩阵,找出所在行上最大,列上最小的数。(可能没有) 可能定义出错,求大虾指教!!!!
以下是求每一行上最大、每一列上最小的程序:
#include<stdio.h>
main()
{
inti,j,k,l,min,max;
printf("请输入矩阵的规格: ");
scanf("%d,%d",&i,&j);
printf("这是一个%d乘%d的矩阵 ",i,j);
inta[i][j];
printf("请输入该矩阵: ");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0];
for(l=0;l<j;l++)
{
if(a[k][l]>max)
max=a[k][l];
}
printf("第%d行的最大值%d ",k+1,max);
}
for(l=0;l<j;l++)
{
min=a[0][l];
for(k=0;k<i;k++)
{
if(a[k][l]<min)
min=a[k][l];
}
printf("第%d列的最小值%d ",l+1,min);
}
}
不过题目的意思应该不是这样的。应该是“找出所在行上最大,同时又是列上最小的数”。
#include<stdio.h>
main()
{
inti,j,k,l,min,max,t1,t;
printf("请输入矩阵的规格: ");
scanf("%d,%d",&i,&j);
printf("这是一个%d乘%d的矩阵 ",i,j);
inta[i][j];
printf("请输入该矩阵: ");
for(k=0;k<i;k++)
for(l=0;l<j;l++)
scanf("%d",&a[k][l]);
for(k=0;k<i;k++)
{
max=a[k][0];
for(l=0;l<j;l++)
{
if(a[k][l]>max)
{
max=a[k][l];
t1=l;
}
}
t=1;
for(l=0;l<i;l++)
{
if(a[l][t1]<max)
{
t=0;
}
}
if(t)
printf("第%d行%d列的值%d为行上最大、列上最小 ",k+1,t1+1,max);
}
}