Ⅰ 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};
編譯器會自動的將線性信息寫入二維數組中。