1 方法:通过嵌套的两个for循环来遍历二维数组
2 代码
#include<stdioh>
void Find(int num, int arr[3][2], int row, int col){
for (int i = 0; i < row; i++){
for (int j = 0; j < col; j++){
if (arr[i][j] == num){
printf("找到了,行列下标为(%d,%d)\n", i, j);
return;
}
}
}
puts("没找到");
}
int main(){
int arr[3][2] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
int num;
scanf("%d", &num);
Find(num, arr, 3, 2);
getchar();
getchar();
return 0;
}
#include <stdioh>
int main()
{
int score[5][3];
float ave_score_1[5];
float ave_score_2[3];
int i,j;
int sum_score;
printf("Please input the score:\n");
for(i=0;i<5;i++)
{
scanf("%d %d %d",&score[i][0],&score[i][1],&score[i][2]);
}
for(i=0;i<5;i++)
{
sum_score = 0;
for(j=0;j<3;j++)
{
sum_score += score[i][j];
}
ave_score_1[i] = sum_score / 30;
}
for(j=0;j<3;j++)
{
sum_score = 0;
for(i=0;i<5;i++)
{
sum_score += score[i][j];
}
ave_score_2[j] = sum_score / 50;
}
for(i=0;i<5;i++)
{
printf("%f ",ave_score_1[i]);
}
printf("\n");
for(j=0;j<3;j++)
{
printf("%f ",ave_score_2[j]);
}
return 0;
}
二维数组可以理解为“元素是数组的数组”,或者说“一维数组的一维数组”。比如
char a[2][3],可以看成是一个一维数组,这个一维数组有2个元素,这2个元素分别是a[0]和
a[1]。其中a[0]和a[1]实际上是两个数组的首地址(即一维指针),而这两个一维数组是字符数组,也就是说它们的元素是字符。a[0]和a[1]是这两个字符数组的数组名,如果要引用其中的字符元素,要在后面用“[下标]”的形式,例如a[0][2]。
C语言中,如何手动输入二维数组?c语言的数组是非常重要的内容,特别是二维数组的内容,所以今天就由小编来为大家介绍c语言怎么创建一个二维数组。
工具原料c语言电脑
方法/步骤分步阅读
1
/6
第一首先在电脑上打开c语言编程软件。
然后创建项目。
2
/6
第二然后导入stdioh和stdlib包。
再加入malloc包。
3
/6
第三然后定义五个参数。
再创建其中两个参数的空间。
4
/6
第四然后用for语句进行循环。
再用scanf语句进行接收输入到二维数组。。
5
/6
第五然后用两个for语言循环。
再输出二维数组的数值。
6
/6
第六然后用printf语句进行数据输出分格。
这样一个二维数组就创建成功了。
注意事项
个人经验,仅供参考。
内容仅供参考并受版权保护
扩展内容:
二维数组:
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。
二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) n + (j − q)) t,按“列优先顺序”存储时,地址计算为:LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) m + (i − p)) t,存放该数组至少需要的单元数为(m-p+1) (n-q+1) t 个字节。
#include <stdioh>
#define ROW 5
#define COL 5
int main()
{
int array[ROW][COL];
int i, j, sum = 0, count = 0;
float average = 00;
// 初始化二维数组
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
array[i][j] = i + j;
}
}
// 计算二维数组的和
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
sum += array[i][j];
}
}
// 计算周围元素的平均值
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
if (i > 0 && j > 0 && i < ROW - 1 && j < COL - 1)
{
count++;
average += (array[i-1][j-1] + array[i-1][j] + array[i-1][j+1] + array[i][j-1] + array[i][j+1] + array[i+1][j-1] + array[i+1][j] + array[i+1][j+1]) / 80;
}
}
}
// 打印结果
printf("The sum of the array is %d\n", sum);
printf("The average of the surrounding elements is %2f\n", average / count);
return 0;
}
该代码使用两个嵌套循环遍历整个二维数组,第一个循环用于计算数组的和,第二个循环用于计算周围元素的平均值。除了数组的边界元素外,所有元素的周围元素都将被计算入平均值。
请注意,代码中使用了 ROW 和 COL 宏定义,这些定义用于指定数组的行数和列数,因此,如果您希望使用其他数组大小,只需修改这些定义即可。
最后,代码使用 printf 函数打印结果,并使用了格式字符串(2f)以保留两位小数。
这是我的代码,自己改改
#include<stdioh>
#define MAX 10
void matrixMultipy(int A[][MAX],int B[][MAX],int C[][MAX],int n,int m,int s);
void main()
{
int n,m,s,i,j,A[MAX][MAX]={0},B[MAX][MAX]={0},C[MAX][MAX]={0};
printf("Please input row and column of the two matrix:");
scanf("%d%d%d",&n,&m,&s);
printf("Please input the elements of the two matrix:\n");
printf("The first one:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&A[i][j]);//A[n][m]
}
}
printf("The next one:\n");
for(i=0;i<m;i++)
{
for(j=0;j<s;j++)
{
scanf("%d",&B[i][j]);//B[m][s]
}
}
matrixMultipy(A,B,C,n,m,s);//注意二维数组做实参的形式
printf("The result is:\n");
for(i=0;i<n;i++)
{
for(j=0;j<s;j++)
{
printf("%-5d ",C[i][j]);//C[n][s]
}
printf("\n");
}
}
void matrixMultipy(int A[][MAX],int B[][MAX],int C[][MAX],int n,int m,int s)
{
int i,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<s;j++)//i和j控制C[][]的行与列
{
for(k=0;k<m;k++)//控制行与列相乘时往下走
{
C[i][j]+=A[i][k]B[k][i];
}
}
}
}
注:此解法如果个子最高的人不止一个,那么只会输出第一个个子最高的人的站位坐标。可以稍作修改,即找到最大值后,遍历数组每个元素,只要是等于最大值的就将其站位坐标输出(数组下标从0开始,实际站位坐标要加1)
修改后代码如下:
1、首先是定义一个二级指针和行列变量int array,row,column;。
2、然后编写输入行列的语句,代码如图。
3、接下来就可以为其开辟一个一个一维装着一维数组的数组。
4、接下来使用array[i]=(int )malloc(sizeof(int)column);,为数组再次产生一个新的装着数组的数组。
5、然后就可以为其赋值并输出代码如图,就完成了。
以上就是关于C语言编程 二维数组全部的内容,包括:C语言编程 二维数组、C语言二维数组、c语言 二维数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)