首页 > 编程知识 正文

c语言二维数组用法,C语言 二维数组

时间:2024-03-07 18:23:22 阅读:331794 作者:AIAR

本文目录一览:

c语言二维数组怎么用

我也不是高手,也是初学。正巧碰到这个问题感觉我还是能解决的。就随手写了下,回答下。大家共同进步哈。有不对的地方还要请各位真正的高手指正。

代码在下面,复制到你的编辑器里面看比较好,加了注解的。还有问题就再问哈。

---------------------------------------------------------------

public class d_array

{

public static void main(String[] args)

{

int[][] d_array = new int[8][8]; //定义一个8行8列的二维数组

int num = 1; //定义一个填充用的数备用

for (int i = 0 ; i d_array.length ; i++)

for (int j = 0 ; j d_array[i].length ; j++)

d_array[i][j] = num++;

//让上面那个填充数自加并填充进数组

for (int p = 0 ; p d_array.length ; p++)

{

System.out.println("数组第 "+(p+1)+" 行中的值为:"); //加一句说明是第几行的,不要也可以。

for (int q = 0 ; q d_array[p].length ; q++)

System.out.print(d_array[p][q]+"t"); //加这个t可以有效的分离开两个数,排版好看

System.out.print("nn"); //换行,第一个用于一行之后换行,第二个用于一个空行,与下面那行隔开,排版好看的

}

//分行打印数组

int sum = 0; //一样,定义一个合备用

for (int m = 0 ; m d_array.length ; m++)

for (int n = 0 ; n d_array[m].length ; n++)

sum = sum + d_array[m][n];

//分别将数组中的各个数加到这个合中去,最后得到的这个合就是数组中所有数的合了。

System.out.println("数组中的所有值得合为:"+sum); //打印结果

}

}

---------------------------------------------------------------

其实二维数组的操作秘诀就是两个for循环套起来用,这样就很简单了。

c语言中二维数组如何使用

#include stdio.h

#include stdlib.h

int main()

{

    int i,j,n=1;

    int a[15][15];

    //赋值

    for(j=0;j15;j++)

    {

        for(i=0;i15;i++)

        {

            a[j][i] = n;

            n++;

        }

    }

    //输出显示

    for(j=0;j15;j++)

    {

        for(i=0;i15;i++)

        {

            printf("%3d ",a[j][i]);//%3d,3表示3按三个字符对齐

        }

        printf("n");//显示完一行换行

    }

    return 0;

}

c语言二维数组

这个就是指针数组和数组指针的区别了,我当年也在这里转了很久,希望我下面所说得可以帮到你。

首先,明确编译器是怎么识别*s[]和(*s)[]两种形式的代码的。对于*s[],编译器会以默认的右结合的方式进行识别,所以首先识别s[],这是一个数组,然后再识别*,说明这个数组的元素都是指针。所以最后的结果就是:这是一个“以指针为元素的数组”,简称指针数组。而对于(*s)[],由于()的优先级高于*,所以编译器会先识别()里面的,也就是先识别*s,所以它是一个指针,然后()说明这个指针指向的是一个数组,所以最后的结果是:这是一个“指向数组的指针”,简称数组指针。

好吧,我承认一点,就是这两个东西看起来复杂,但是其实用起来区别不大,最本质的东西就是,指针数组用到多个指针,数组指针就完全是一个指针跑天下。

看下面一段代码(我偷懒用C++写的,反正这个不是重点):

#include

using

namespace

std;

int

main()

{

//指针数组

*a[2]

int

t1[3]

=

{0,1,2};

int

t2[3]

=

{3,4,5};

int

t3[3]

=

{6,7,8};

int

*a[3];

a[0]

=

t1;

//一个指针赋值

a[1]

=

t2;

//第二个指针赋值

a[2]

=

t3;

//第三个指针赋值

//数组指针

(*b)[3]

int

(*b)[3]

=

new

int[3][3];

for(int

i=0;i3;i++)

for(int

j=0;j3;j++)

*(*(b+i)+j)

=

i*3+j;

//一个指针跑天下

cout

*((*b)+1)

"

"

*(*(b+1))

endl;

system("pause");

return

0;

}

最后我想说,其实这个做题的时候有用,自己写的时候还是尽量直接用int[n][m]的方式比较方便,稍微浪费点空间问题不大,重要的是看起来好看,不容易出错。

c语言二维数组的运用

#includestdio.h

#define MAX 100

#define LEN 80

main()

{

char text[MAX][LEN];

register int i,j,t;

for(t=0;tMAX;t++)

{

printf("%d:",t);

gets(text[t]); /* 由于 text 定义为二维数组, 所以该循环体的作用就是:循环从键盘输入 MAX-1 次字符串,并存入 text[t] 中,然后 t 依次递增 1 */

if(!text[t][0]) /* 该语句用于判断字符串是否到结尾?,如果到结尾了,即:text[t][0] = '',表示只输入了一个回车符,则退出循环 */

break;

}

for(i=0;it;i++)

{

for(j=0;text[i][j];j++)

{

putchar(text[i][j]); /* 显示 text 二维数组中的字符 */

putchar('n');

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。