c语言二维数组实例

有一个二位数组 每行的排列遵守从小到大 每列也是 现在一个变量X 判断X 是否在数组中,要求比较次数不大于M+n 次 怎么算? 写出程序,谢谢 在线等

以下是几个简单的C语言二维数组实例代码

    输出第n行的杨辉三角形:

    #include<stdio.h>
    void main()
    {
    int i,j,n; int a[100][100]={0};//定义一个二维数组。
    scanf("%d",&n);
    a[0][1]=1;
    for(i=1;i<n;i++)
    for(j=1;j<i+2;j++)
    a[i][j]=a[i-1][j]+a[i-1][j-1];
    for(i=0;i<n;i++)
    {
    for(j=1;j<i+2;j++)
    printf("%d\t",a[i][j]);
    printf("\n");
    }
    }

    样例输入:5

    样例输出:

    1

    1       1

    1       2       1

    1       3       3       1

    1       4       6       4       1


    将一个n*m矩阵的行和列互换,并输出:

    #include<stdio.h>
    void main()
    {
    int i,j,n,m;
    int a[100][100],b[100][100];
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
    for(j=0;j<m;j++)
    {
    scanf("%d",&a[i][j]);
    b[j][i]=a[i][j];
    }
    printf("输出原矩阵:\n");
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    printf("%d\t",a[i][j]);
    printf("\n");
    }
    printf("输出互换后的矩阵:\n");
    for(i=0;i<m;i++)
    {
    for(j=0;j<n;j++)
    printf("%d\t",b[i][j]);
    printf("\n");
    }

    样例输入:

    2 3

    15 46 47

    16 3 48

    样例输出:

    输出原矩阵:

    15      46      47

    16      3       48

    输出互换后的矩阵:

    15      16

    46      3

    47      48

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-10
这个问题很简单啊,用两个循环就行了
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次本回答被提问者和网友采纳
第2个回答  2016-01-15
二维数组定义的一般形式是:
类型说明符 数组名[常量表达式1][常量表达式2]
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度
int a[3][4];