使用的时候是循环不到a[3][2]的,三行两列的整型数组最多可以访问到a[2][1],因为数组下标是从0开始的,切记不要越界哦~ c语言 二维数组的初始化 二维数组的初始化 二维数组初始化也是在类型说明时给各下标变量赋以初值. 二维数组可按行
一:#include <stdio.h> void main(){ int i,j; int a[5][3]; for(i=0;i<5;i++) for(j=0;j<3;j++){ scanf("%d",&a[i][j]); } for(i=0;i<5;i++){ for(j=0;j<3;j++){ printf("%d ",a[i][j]); } printf("\n");} } 二:#include <stdio.h> void main(){ int i,j; int a[3][3]; for(i=0;i<3;i++)
这样写,格式有点小错误.以下帮你加了几个中括号,希望采纳!/* Note:Your choice is C IDE */#include "stdio.h" void main() { int i,j,sum=0,sum1=0,max=0; int a[2][2]={{1,2},{4,5}}; for(i=0;i<2;i++) for(j=0;j<2;j++) { if(i==j) sum=sum+a[i][j]; else { sum1=sum1+a[i][j]; } if(a[i][j]>max) max=a[i][j]; } printf("%d,%d,%d\n",sum,sum1,max); }
第一个.但是ch[3]是不存在的,第一维的取值范围是0,1,2.第二维是0,1,2,3.
#include<stdio.h> void main() { int a[3][3]; int i,j; for(i=0;i<3;i++) for(j=0:j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) { printf("\n"); for(j=0:j<3;j++) printf("%d",a[i][j]); } }
其实并不存在真正的“二维”,只不过是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}; 编译器会自动的将线性信息写入二维数组中.
#include<stdio.h> void main() { float a[3][4],min[4],t; int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%f",&a[i][j]); for(i=0;i<4;i++) for(j=1,min[i]=a[0][i];j<3;j++) { if(a[j][i]<min[i])min[i]=a[j][i]; } for(i=0;i<4;i++) printf("%f ",min[i]); }
方法1:放在结构体中,然后在两个结构体变量之间用赋值操作符赋值.例如://---------------------------------------------------------------------------#include <stdio.h> struct{ unsigned A[600][4]; }a={1,2,3,4,4,6,5,9,1,3,2,4},b; int main(void) { b=a; printf("%d",b.
一维数组: 类型说明符 数组名[常量表达式] 例如 int a[10]它表示数组名为a,此数组有10个元素 二维数组: 数组名[下标][下标] 如 a[2][3] 下标可以是整形表达式如a[2-1][2*2-1]不能写成a[2,3] a[2-1,2*2-1]
这个问题很简单啊,用两个循环就行了 int array[M][N]={1,2,3,4,5,6,7,8,9,..} int i=0,j=0; for(i;i<M;i++)//最多M次 { if(array[i][0]>x&&array[i][N-1]<x) break; } for(j;j<N;j++)//最多N次 { if(array[i][j]==x) break; } array[i][j]即为所求,最多M+N次