c语言程序编写 输入一个4×3的整数矩阵,输出其中最大值,最小值和他们的下标(行号和列号)
用什么语言呢
我只会pascal
var
begin
for i:=1 to 3do
for j:=1 to 4 do
read(a[i,j]);
for 我晕 不想写了
给你说说思路
求矩阵的最大值
说个好理解的算法
先求各行的最大值 保存到一个数组里
然后对数组进行排序
得到的就是矩阵的最大值 当然这是相当麻烦地办法-_-!!!
end.
你的程序没问题啊。行号列号都是从0开始的。如果要改的话,只要把组后两句改一下:
printf("最大值为:%d,行标:%d,列标:%d
",max,xb1_h+1,xb1_l+1);
printf("最小值为:%d,行标:%d,列标:%d
",min,xb0_h+1,xb0_l+1);
结果就成了这样:
#include<stdio.h>
void main(){
int arr[4][3];
int i,j,min,max;
int r1=0,r2=0,c1=0,c2=0;
for(i=0;i<4;i++)//输进二维数组
for(j=0;j<3;j++){
printf("Input arr[%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("
This is max: %2d, r: %2d , c: %2d",max,r1,c1);
printf("
This is min: %2d, r: %2d , c: %2d",min,r2,c2);
printf("
");
}
扩展资料:
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’和‘’,而把它赋给一个字符变量是不行的。
#include<stdio.h>
void main(){
int arr[4][3];
int i,j,min,max;
int r1=0,r2=0,c1=0,c2=0;
for(i=0;i<4;i++)//输进二维数组
for(j=0;j<3;j++){
printf("Input arr[%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]);
}
for(i=0;i<4;i++)
for(j=0;j<3;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("
This is max: %2d, r: %2d , c: %2d",max,r1,c1);
printf("
This is min: %2d, r: %2d , c: %2d",min,r2,c2);
printf("
");
}
//望采纳
#include <stdio.h>
int main(void)
{
int i;
int j;
int t_line;
int t_row;
int tmp;
int t_array[4][3];
for(i = 0; i < 4; i++)
{
for(j = 0; j < 3; j++)
{
scanf("%d", &t_array[i][j]);
}
}
for(i = 0; i < 4; i++)
{
for(j = 0; j < 3; j++)
{
printf("%d ", t_array[i][j]);
}
printf("\n");
}
printf("\n");
tmp = t_array[0][0];
t_line = 0;
t_row = 0;
for(i = 0; i < 4; i++)
{
for(j = 0; j < 3; j++)
{
if(tmp > t_array[i][j])
{
tmp = t_array[i][j];
t_line = i;
t_row = j;
}
}
}
printf("最大值:t_array[%d][%d] = %d\n", t_line, t_row, tmp);
tmp = t_array[0][0];
for(i = 0; i < 4; i++)
{
for(j = 0; j < 3; j++)
{
if(tmp < t_array[i][j])
{
tmp = t_array[i][j];
t_line = i;
t_row = j;
}
}
}
printf("最大值:t_array[%d][%d] = %d\n", t_line, t_row, tmp);
return 0;
}
#include <stdio.h>
#include <limits.h>
int A[12];
void main(){
for(int i=0;i<12;i++)
scanf("%d",A+i);
int max=INT_MIN;
int maxId;
int min=INT_MAX;
int minId;
for(int j=0;j<12;j++){
if(*(A+j)>max){
max=*(A+j);
maxId=j;
}
if(*(A+j)<min){
min=*(A+j);
minId=j;
}
}
printf("the max of the matrix is %d\t row:%d col:%d\n",max,maxId/3+1,maxId%3+1);
printf("the min of the matrix is %d\t row:%d col:%d\n",min,minId/3+1,minId%3+1);
}
师桑复方: 你这是什么意思啊,是这样吗?#include<stdio.h> void main() { int a[3][4] ,i,j //定义3*4矩阵 printf("输入12个整数\n"); for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%-3d",&a[i][j]);//为其输入值 }
凉山彝族自治州19331107231: 用C语言程序编写:输入一个四位整数(如1234),使其倒序输出(如4321),并求其各位之和. - ?
师桑复方: #include int main() {int n,s=0;scanf("%d",&n);while(n>0){printf("%d",n%10);s+=n%10;n/=10;}printf("\n各位之和=%d\n",s);return 0; }
凉山彝族自治州19331107231: 任意输入4个整数,从大到小排列输出.c语言程序怎么写 - ?
师桑复方: 任意输入4个整数,从大到小排列输出.c语言程序写法:main() {int a,b,c,d,m; scanf("%d %d %d %d",&a,&b,&c,&d); if(b>a) {m=a;a=b;b=m;} if(d>c) {m=c;c=d;d=m;} if(c>a) {m=a;a=c;c=m;} if(c>b); {m=b;b=c;c=m;}printf("\n%d %d %d %d\n",a,...
凉山彝族自治州19331107231: C语言编程4.求3*3矩阵中最大元素所在的行列位置 - ?
师桑复方: #include #define N 3 void main(){int a[N][N]={{1,2,3},{4,10,6},{7,8,9}},max,i,j,col=0;max=a[0][0];for(i=0;i for(j=0;j if(max printf("col=%d\n",col); }
凉山彝族自治州19331107231: 用C语言编写一个程序,输入4个整数,按从大到小顺序输出! - ?
师桑复方: PROGRAM 程序名(input,output); Var a,b,c,d,t: Real; Begin Write('Input a, b,c='); Readln(a,b,c,d); if a>b then begin {复合语句} t:=a; a:=b; b:=t {交换a,b} end; if a>c then begin {复合语句} t:=a; a:=c; c:=t {交换a,c} end; if a>d then begin {复合语句} ...
凉山彝族自治州19331107231: C语言编写程序:通过键盘给3x4的整数矩阵输入数据,然后分别按行和按列输出; - ?
师桑复方: 第一个程序: #include<stdio.h>void main() {int a[3][4],i,j;for(i=0;i<3;i++){printf("输入第%d行的4个数:",i+1);for(j=0;j<4;j++)scanf("%d",&a[i][j]);}printf("按行输出:\n");for(i=0;i<3;i++){printf("第%d行:",i+1);for(j=0;j...
凉山彝族自治州19331107231: C语言:编写一个程序,要求输入一个整数,输出其阶乘 - ?
师桑复方: 程序如下: #include "stdioh"int main(void){int i;int acc=1;//用于存放阶乘printf ("请输入一个整数i=");scanf ("%d",&i);for(;i>0;i--){acc*=i;}printf("该数的阶乘为acc=%d ",acc);return 0;}运用for循环来求阶乘. 运行结果: 如求十的C语言:编写一个程序,要求输入一个整数,输出其阶乘
凉山彝族自治州19331107231: 接收一个四位整.编写一个程序,将该数的每一位数字相加并显示结果.(C语言) - ?
师桑复方: #include <stdio.h> void main() { int a,i=0; scanf("%d",&a); while (a>10) { i+=a%10; a/=10; } i+=a; printf("%d\n",i); }
凉山彝族自治州19331107231: c语言如何编程,能够输入一个整数,得到该整数十位上的数字? - ?
师桑复方: 假设输入的整数放到变量x中,则语句x/10%10即是十位上的数字,代码如下:1 2 3 4 5 6 7 8 9#include <stdio.h> intmain(void) {intx;printf("输入一个整数:");scanf("%d",&x);printf("%d的十位上的数字是:%d\n",x,x/10%10);return0; }
凉山彝族自治州19331107231: C语言如何编程实现给出一个不多于4位的正整数,输出它是几位数并且按逆序输出每一位数字? - ?
师桑复方: #include <stdio.h> #include <math.h>int main(void) {int num;do{printf("请输入一个不大于四位的数据:\n");scanf("%d", &num);while(getchar()!='\n') //防止意外输入无效字符continue;}while(!(num>0 && num<10000)); int i=1, ...