当前位置:首页 » 编程语言 » c语言传入二维数组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言传入二维数组

发布时间: 2022-06-01 08:48:14

c语言输入一个二维数组,找出每行的最大值输出

#include<stdio.h>

//首先指定M和N的值

#define M 3

#define N 3

int main()

{

printf("There are %d rows %d columns. ", M, N); //输出到屏幕的提示信息

int a[M][N] = { 0 }; //声明一个M行N列的数组,并将全部元素赋初值为0

int i, j; //for循环中要用到

for (i = 0; i < M; i++)

{

printf("input %d row's %d values: ", i + 1, N); //输出到屏幕的提示信息

for (j = 0; j < N; j++)

scanf("%d", &a[i][j]); //对第i行第j列的元素赋值

}

int maxArr[M] = { 0 }; //声明一个含有M个元素的一维数组来存储M个行最大值

for (i = 0; i < M; i++)

{

int max = a[i][0]; //先将每一行的第一个数作为最大值

for (j = 1; j < N; j++) //关键步骤——找出行最大值

if (max < a[i][j])

max = a[i][j];

maxArr[i] = max; //将行最大值存入行最大值数组中

}

for (i = 0; i < M; i++) //将每行最大的数输出

printf("%d ", maxArr[i]);

return 0;

}

(1)c语言传入二维数组扩展阅读:

分析

1、for循环输入一个二维数组a[M][N]。

2、使用一个一维数组存储二维数组每行的最大值,一维数组的大小为M。

3、嵌套for循环找出二维数组每行的最大值,并将最大值传递给一维数组。

4、输出存储最大值的数组。

Ⅱ c语言函数怎么传入一个二维数组

这样传:
函数声明:Func(变量类型 *[二维数组的列长] arry);

char arry[][4] ;
Func(arry);

Ⅲ 急急!!!如何用c语言输入和输出一个二维数组

#include <stdio.h>

#include <stdlib.h>

int main()

{

int a[2][2];

int i,j;

for (i=0;i<2;i++)

{

for (j=0;j<2;j++)

{

scanf("%d ",&a[i][j]);

}

}

for(i=0;i<2;i++)

for(j=0;j<2;j++)

printf("%d",a[i][j]);

return 0;

}

运行成功

Ⅳ C语言中如何将二维数组作为函数的参数传递

在c语言中可以用二维数组作为实参或者形参。
1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小,也可以省略第1维的维数如:
void f(int array[3][10]); //正确
void f(int array[][10]); //正确上面的两种二维数组形参表示都是正确的。
2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略,如下面的定义是不合法的:
void f(int array[][]); //错误

因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:

void f(int array[3][]); //错误 3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致。比如定义如下函数:
void f(int array[][10]);可以将如下数组传递给函数f。
int a[2][10] = {1,2,3,4};
int b[4][10] = {1};

Ⅳ c语言如何传递多个二维数组

二维数组即数组元素为数组的数组,数组在函数传参时,为了避免复制,会自动转成指向数组第1个元素的指针,二维数组在传参时,会转成一个指向数组的指针
所以声明是fun(int (*a)[N])当然写成fun(int a[][N])也行,因为实际是int(*)[N]这种类型,所以建议就这么写。
调用就直接转一个int a[x][N]类型的数组即可。
定义就是多一个函数体,必须有形参的名字。

Ⅵ c语言二维数组输入

输入格式里不要添加空格(你用了: "%d ") 。改用 scanf("%d", &a[j][i]); 就可以了。
输入的数据 用空格 或 换行符分隔即可。

Ⅶ C语言中 指针做函数参数传递二维数组

C语言中
指针做函数参数传递二维数组有两种基本方法:
1、传递“数组指针”
#include <stdio.h>
void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组
{
int i,j;
for( i=0;i<n;i++ ){
for( j=0;j<3;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
output(a,2);
}
2、传递“指针数组”
先将二维数组的行指针存储到一个指针数组中,再将指针数组传递到子函数中去。
#include <stdio.h>
void output( int *pa[], int row,int col ) //这个函数更通用,但调用前,要做好准备工作。
{
int i,j;
for( i=0;i<row;i++ ){
for( j=0;j<col;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
int i;
int *pa[2];
for( i=0;i<2;i++ )
pa[i]=a[i];
output(pa, 2, 3);
}

Ⅷ C语言如何将数据放入二维数组

#include<stdio.h>
int main()
{
int i, j;
int num[5][5];//二维数组
for(i = 0; i < 5; i++)//行
{
for(j = 0; j < 5; j++)//列
{
scanf("%d",&num[i][j]); //输入25个数据,空格分隔,最后回车。
}
}
for(i = 0; i < 5; i++)//行
{
for(j = 0; j < 5; j++)//列
{
printf(" %d",num[i][j]); //输出
}
printf("\n");
}
return 0;
}

Ⅸ 如何使用C语言在动态数组中手动输入一个二维数组的值

c++强答一波
#include <iostream>
using namespace std;
int main()
{
cout << "请输入你需要的矩阵a的行数和列数" << endl;
int s, t;//s为数组行数的递推
int i, j;//i为二维数组的行数,j为二位数组的列数
cin >> i >> j;
int a[100][100];
int b[100][100];
cout << "请输入你需要的矩阵b的行数和列数" << endl;
int m, n;
cin >> m >> n;//m为二维数组的行数,n为二位数组的列数
if (i != m || j != n)//矩阵a与b的哈那个书和列数需相等,否则无法比较
{
cout << "error" << endl;
}
cout << "请输入你需要的矩阵a的数值" << endl;
for (s = 0; s < i; s++)
{
for (t = 0; t < j; t++)
{
cin >> a[s][t];//输入矩阵a
}
}
cout << "请输入你需要的矩阵b的数值" << endl;
for (s = 0; s < i; s++)
{
for (t = 0; t < j; t++)
{
cin >> b[s][t];//输入矩阵b
}
}
cout << "a的矩阵为" << endl;
for (s = 0; s < i; s++)
{
for (t = 0; t < j; t++)
{
cout << a[s][t] << " ";//输出矩阵a
}cout << endl;
}
cout << "b的矩阵为" << endl;
for (s = 0; s < i; s++)
{
for (t = 0; t < j; t++)
{
cout << b[s][t] << " ";//输出矩阵b

}cout << endl;
}
system("pause");
}

Ⅹ c语言 二维数组如何输入 该怎么输入数组,才能输出

其实并不存在真正的“二维”,只不过是C编译器自动的将它 一行一行的保存成了一维信息。所以,二维数组的输入只要用双重循环即可,比如:
int a[11][11];
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
scanf("%d",&a[i][j]);

}
}
其实 int a[3][3] 可以这样初始化:
int a[3][3] = {0,1,2,3,4,5,6,7,8};
编译器会自动的将线性信息写入二维数组中。