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

发布时间:2022-11-24

本文目录一览:

  1. c语言二维数组怎么用
  2. c语言中二维数组如何使用
  3. c语言二维数组
  4. c语言二维数组的运用

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("\n\n"); //换行,第一个用于一行之后换行,第二个用于一个空行,与下面那行隔开,排版好看的
        }
        //分行打印数组
        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; j < 15; j++)
    {
        for(i = 0; i < 15; i++)
        {
            a[j][i] = n;
            n++;
        }
    }
    //输出显示
    for(j = 0; j < 15; j++)
    {
        for(i = 0; i < 15; i++)
        {
            printf("%3d ", a[j][i]); // %3d,3表示按三个字符对齐
        }
        printf("\n"); // 显示完一行换行
    }
    return 0;
}

c语言二维数组

这个就是指针数组和数组指针的区别了,我当年也在这里转了很久,希望我下面所说得可以帮到你。 首先,明确编译器是怎么识别*s[](*s)[]两种形式的代码的。对于*s[],编译器会以默认的右结合的方式进行识别,所以首先识别s[],这是一个数组,然后再识别*,说明这个数组的元素都是指针。所以最后的结果就是:这是一个“以指针为元素的数组”,简称指针数组。而对于(*s)[],由于括号的优先级高于*,所以编译器会先识别括号内的内容,也就是先识别*s,所以它是一个指针,然后括号说明这个指针指向的是一个数组,所以最后的结果是:这是一个“指向数组的指针”,简称数组指针。 好吧,我承认一点,就是这两个东西看起来复杂,但是其实用起来区别不大,最本质的东西就是,指针数组用到多个指针,数组指针就完全是一个指针跑天下。 看下面一段代码(我偷懒用C++写的,反正这个不是重点):

#include <iostream>
using namespace std;
int main()
{
    //指针数组
    int *a[3];
    int t1[3] = {0, 1, 2};
    int t2[3] = {3, 4, 5};
    int t3[3] = {6, 7, 8};
    a[0] = t1; //一个指针赋值
    a[1] = t2; //第二个指针赋值
    a[2] = t3; //第三个指针赋值
    //数组指针
    int (*b)[3];
    b = new int[3][3];
    for(int i = 0; i < 3; i++)
        for(int j = 0; j < 3; j++)
            *(*(b + i) + j) = i * 3 + j; //一个指针跑天下
    cout << *(*(b) + 1) << " " << *(*(b + 1)) << endl;
    system("pause");
    return 0;
}

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

c语言二维数组的运用

#include <stdio.h>
#define MAX 100
#define LEN 80
main()
{
    char text[MAX][LEN];
    register int i, j, t;
    for(t = 0; t < MAX; t++)
    {
        printf("%d:", t);
        gets(text[t]); /* 由于 text 定义为二维数组,所以该循环体的作用就是:循环从键盘输入 MAX-1 次字符串,并存入 text[t] 中,然后 t 依次递增 1 */
        if(!text[t][0]) /* 该语句用于判断字符串是否到结尾?如果到结尾了,即 text[t][0] = '\0',表示只输入了一个回车符,则退出循环 */
            break;
    }
    for(i = 0; i < t; i++)
    {
        for(j = 0; text[i][j]; j++)
        {
            putchar(text[i][j]); /* 显示 text 二维数组中的字符 */
            putchar('\n');
        }
    }
}