c语言行和列
⑴ c语言中 用函数计算二维数组每行之和以及每列之和 怎么编程
已通过测试
#include <stdio.h>
void fun(int a[][10],int row,int col)
{ int i,j,k,sum;
int r[10],c[10];
k=0;
for(i=0;i<row;i++)
{ sum=0;
for(j=0;j<col;j++)
sum+=a[i][j];
r[k]=sum;
k++;
}
k=0;
for(j=0;j<col;j++)
{ sum=0;
for(i=0;i<row;i++)
sum+=a[i][j];
c[k]=sum;
k++;
}
for(k=0;k<row;k++)
printf("the sum of NO.%d row is %d\n",k+1,r[k]);
for(k=0;k<col;k++)
printf("the sum of NO.%d column is %d\n",k+1,c[k]);
}
main()
{ int a[10][10],row,col;
int i,j;
printf("Input the row and column of array:");
scanf("%d%d",&row,&col);
for(i=0;i<row;i++)
for(j=0;j<col;j++)
scanf("%d",&a[i][j]);
fun(a,row,col);
}
⑵ 关于c语言数组的问题知道他是表示几行几列的!
是个3*4的二维数组,即三行四列{0,1,2,3},
{4,5,6,7},{8,9,10,11}
分别表示第一行到第三行的元素。即第一行元素值:a[0][0]=0,a[0][1]=1,a[0][2]=2,
a[0][3]=3,分别对应第一个花括号{0,1,2,3},以此类推。
这是前人规定的,不是以我们意志转移的,这个是在赋初值啊!
⑶ c语言中 将数组列换行 行换列
1、如果是二维数组,将就可按行输出就行:
for(i=0;i<3;i++) //按每一行输出,每循环一次输出一行
{ for(j=0;j<3;j++) //输出每一行中的每一列
printf("%3d",a[i][j]);
printf("\n"); //每输出一行,输出一个换行符
}
2、如果是一维数组,可按每行输出的数的个数来控制:
for(i=0;i<9;i++)
{ printf("%3d",a[i]); //a为一维数组
if((i+1)%3==0) printf("\n"); //每行输出三个数,因为数组的下标i从0开始,所以先加个1再除3取余数
}
⑷ C语言行指针和列指针
&在任何时候都不能寻址, 它是用来取地址的.
p[i]在任何时候都等价于*(p+i)
p[i][j] (其中p是int*[x]类型的)在任何时候都等价于*(*(i*x)+j)
x是一个变量.
int a[10][20]
这里x = 20
int a[20][10]
这里x = 10
C语言没有什么行指针, 列指针.
一维数组就是一级指针,
二维数组是特殊的二级指针,
以此类推......
⑸ C语言 求矩阵各行各列的和
思路:求矩阵各行的和时,矩阵的行先不变,利用for循环依次遍历该行的每一列元素累加求和;求矩阵各列的和时,矩阵的列先不变,利用for循环依次遍历该列的每一行元素累加求和。
参考代码:
#include<stdio.h>
intSr(inta[3][5],intn)//求矩阵n行的累加和
{
inti,j,c=0;
for(j=0;j<5;j++)
c+=a[n][j];
returnc;
}
intSc(inta[3][5],intn)//求矩阵n列的累加和
{
inti,j,c=0;
for(i=0;i<3;i++)
c+=a[i][n];
returnc;
}
intmain()
{
inti,j,a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6};
for(i=0;i<3;i++){
for(j=0;j<5;j++)
printf("%d",a[i][j]);
printf(" ");
}
printf("各行的累加和为: ");
for(i=0;i<3;i++)
printf("%d",Sr(a,i));
printf(" 各列的累加和为: ");
for(i=0;i<5;i++)
printf("%d",Sc(a,i));
return0;
}
/*
输出:
13579
246810
35876
各行的累加和为:
253029
各列的累加和为:
612192225
*/
⑹ c语言数组,怎么样从键盘上输入行数和列数
你好!
你的scanf中用逗号分隔了两个格式符,则输入时也要用逗号分开
比如输入
2和5
2,5按下回车就行了
仅代表个人观点,不喜勿喷,谢谢。
⑺ c语言指针变量中行指针和列指针是什么要如何使用
对于一个二维数组:
int a[3][5];
a即是它的行指针,a+0表示第0行的地址,a+1表示第1行地址…
a[row]+col即列指针,列指针经过一次解引用就可以转化成二维数组中实际的值,列指针也是指向非常量的常量指针。
⑻ C语言定义数组行列数的问题
同学你好,我也遇到过这样的问题,数组定义时,行列数不能用变量。 但是, 我们可以动态创建一个二维数组。
你可以这样做:(以int型为例)
int **a;
int m,n,i;
scanf("%d%d",&m,&n); //输入你此次想要创建数组的行数和列数,储存在m和n中
a=(int**)malloc(m*sizeof(int*)); /*malloc函数在stdlib.h里面,用的时候加入这个头文件*/
for(i=0;i<m;i++)
a[i]=(int*)malloc(n*sizeof(int));
/*这样以后你就可以把a当作二维数组a[m][n]来用了。。
由此可以实现,创建不确定行列数的二维数组了 ( 前提你知道malloc函数的意义,并要掌握指针的基础知识哦 )
采纳我哟~~
⑼ c语言 怎样用程序知道二维数组行数和列数
比如有这样一个二维数组: int a[3][5];
求数组元素的总数: sizeof(a) / sizeof(int)
求数组列数: sizeof(a[0])/sizeof(int)
而数组行数则为 :( sizeof(a) / sizeof(int) )/ ( sizeof(a[0]) / sizeof(int) )
不知道你明白了么?