精华内容
下载资源
问答
  • C语言利用二维数组输入输出字符串
    千次阅读
    2021-04-02 09:25:13
    #include<stdio.h>
    int main(){
    	char a[15][20];
    	int i;
    	for(i=0;i<15;i++){
    		scanf("%s",&a[i][0]);
    	}
    
    	printf("%s ",&a[2][0]);
    	printf("%s",&a[11][0]);
    	
    }
    
    
    更多相关内容
  • 二维数组输入输出的归纳

    千次阅读 2020-05-18 12:41:04
    二维数组:C语言二维数组完全归纳 二维数组类同于数学中的行列矩阵,第一维表示行,第二维表示列。对象与对象一类的问题大都可以抽象为二维数组来描述。 二维数组定义 数据类型 数组名[第一维大小][第二维大小]; int...

    二维数组类同于数学中的行列矩阵,第一维表示行,第二维表示列。对象与对象一类的问题大都可以抽象为二维数组来描述。

    二维数组定义

    数据类型 数组名[第一维大小][第二维大小];

    int a[4][5];
    float sc[3][4];
    

    定义动态二维数组:

    int n=2;
    int a[n][3];
    int b[2][n];
    

    定义的数组未初始化时,数组内存储的时随机数;

    int a[2][3];//该数组的六个元素为随机数
    

    如果把二维数组看成特殊的一维数组,他每个元素就是特殊的一维数组。

    int salary[3][4];
    

    这是一个三行四列的二维数组,可以用该数组表示三个对象,所以将该数组看成三个一维数组,

    三个对象分别是salary[0]、salary[1]、salary[2]

    salary是数组名。
    每个对象又是包含四个属性的一维数组,四个属性分别用
    salary[i][0]、 salary[i][1]、salary[i][2]、salary[i][3];来表示。

    二维数组名salary是salary[0]的地址,即salary=&salary[0]。
    数组名+1表示跳过一个对象。
    salary+1为第二个对象salary[1] 的地址,salary+2为第三个对象salary[2] 的地址。

    PS.从数学行列式角度分析,二维数组名,即首行的地址,C语言中的地址一般是空间首地址。故二维数组名是首行首地址,该数组名+1,表示跳过一整行,达到第二行的首地址,并以此类推。

    //写个程序验证一下子
    #include<stdio.h>
    int main()
    {
       int sc[3][4];
       printf("sc=%p\n",sc);
       printf("&sc[0]=%p\n",&sc[0]);
       printf("&sc+1=%p\n",sc+1);
       printf("&sc+2=%p\n",sc+2); 
       return 0;
    }
    

    输出:
    sc=000000000062FDF0
    &sc[0]=000000000062FDF0
    &sc+1=000000000062FE00
    &sc+2=000000000062FE10

    分析:
    1)定义了一个三行四列的二维数组,三个对象,每个对象有四个属性;
    2)二维数组名相当于首对象sc[0]的地址,即sc==&sc[0]。
    输出的格式控制符为%p或%x或者%08x;
    可以看到二维数组的首对象的地址是16进制数00062FDF0
    3)二位数组名+1表示跳过一个对象(一行)的空间,到下一个对象(行) 的地址。即跳过一个对象的所有属性的空间,到下一个对象的起始位置。

    例子中int型数组在devc++的每个属性占用四个字节,一个对象占用4*4=16个字节,故sc、sc+1、sc+2的地址相差16个字节。
    4)程序每次运行时,由于起始地址的分配不同,所以输出结果会有不同。

    二维数组的引用

    二维数组的引用格式:

    数组名[行下标][列下标];
    

    注意:行下标和列下标均从0开始,同时要注意防止越界。

    加个例子说一下:

    #include<stdio.h>
    int main (void)
    {
        int a[2][3]; //先定义,后赋值
        int i,j,s=0;
        printf("Input 6 integers:");
        for(i=0;i<2;i++)  //行下标
        {
            for (j=0; j<3; j++)  //列下标
            {
                scanf ("%d",&a[i][j]); //勿忘 &
                s+=a[i][j] ; //与上一条语句不能颠倒
            }
        }
        for(i=0;i<2;i++)
        {
            for (j=0; j<3; j++)
                printf("%d\t",a[i][j]); //使用\t 的作用:向后跳四个空格,常用来做格线对齐
            printf ("\n"); //注意该输出换行符的位置
        }
        printf("s=%d\n", s);
        return 0;
    }
    

    运行结果:
    Input 6 integers:1 2 3 4 5 6
    1 2 3
    4 5 6
    s=21

    二维数组的存储

    二维数组在逻辑(逻辑)表现形式上可以理解为矩阵(分行分列),但是在内存中的物理存储又是连续的,即存完第一行,在后面继续存储第二行,第三行,…在这里插入图片描述

    动态二维数组的应用举例
    #include<stdio.h>
    #include<stdlib.h>
    int main(void)
    {
        int line,list;
        int **pary;
        int i,j;
        printf("Input the line:\n");
        scanf("%d",&line);
        printf("Input the list:\n");
        scanf("%d",&list);
        pary = (int **)malloc(sizeof(int *)*line);
        printf("Input the array:\n");
        for(i=0;i<line;i++)
        {
            pary[i] = (int *)malloc(sizeof(int)*list);
            for(j=0;j<list;j++)
            {
                scanf("%d",&pary[i][j]);
            }
        }
    
        for(i=0;i<line;i++)
        {
            for(j=0;j<list;j++)
            {
                printf("%d  ",pary[i][j]);
            }
            printf("\n");
        }
    
        for(i=0;i<line;i++)
            free(pary[i]);
        free(pary);
        return 0;
    }
    
    
    展开全文
  • C语言使用指针对成绩的录入和输入 //指向数组的指针作为函数参数 /*例题题目来源于谭浩强C语言编程第五版251页 有一个班,有三名同学,各学四门课,计算总平均分和指定某位同学的全部成绩 并且能自主判断不及格同学...

    C语言使用指针对成绩的录入和输入

    //指向数组的指针作为函数参数
    /*例题题目来源于谭浩强C语言编程第五版251页
    有一个班,有三名同学,各学四门课,计算总平均分和指定某位同学的全部成绩
    并且能自主判断不及格同学的各科成绩
    */
    #include <stdio.h>
    int main()
    {
        void average(float * p,int n );
        void search(float(*p)[4],int n);
        void score_input(float score[3][4]);
        void pointer_score_input(float * p,int n);
        float score[3][4];
        //score_input(score);//数组版的输入
        pointer_score_input(score,12);//指针版输入
        average(*score,12);
        search(score,3);
        return 0;
    
    }
    //定义求平均值函数
    void average(float * p,int n )
    {
    
        float sum=0,aver;
        float * p_end;
        for(p_end=p;p<p_end+n;p++)
            sum=sum+(*p);
        aver=sum/n;
        printf("分数平均值为:%f\n",aver);
    }
    //定义寻找成绩函数
    void search(float(*p)[4],int n)  //这里的(*p)[4]是指向具有4个一维数组的指针
    {
        int i,j,m,flag=0;
        //printf("这个成绩的同学是%d同学\n",n);
        for(j=0;j<n;j++)
         {for (i=0;i<4;i++)
    
    
         if(*(*(p+j)+i)<60)
    
            flag=1;
            if(flag==1)
            {
    
              printf("不及格同学是%d,其各科成绩是\n",j+1);
              flag=0;
              printf("\n");
        for (m=0;m<4;m++)
    
             printf("  %f",*(*(p+j)+m));//前面那个*(p+n)是指第几个同学,后面i是指这位同学第几门的成绩
    
    
             }
    printf("\n");
    
              }
    
    
        printf("\n");
    }
    //成绩输入函数
    void score_input(float score[3][4])
    {
        int i,j;
        printf("请你输入学生的成绩");
        for(i=0;i<3;i++)
            for(j=0;j<4;j++)
            scanf("  %f",&score[i][j]);
        printf("输入完毕\n");
    }
    //指针版输入成绩函数
    void pointer_score_input(float * p,int n)
    {
        float *score_pointer;
        score_pointer=p+n;//把地址送给score_pointer指针
        printf("请你输入学生的成绩\n");
        for(;p<score_pointer;p++)//此时的P指针指向的地址已经是scored的首地址
            scanf("%f",p);      //  向指定地址写入数据
        printf("输入完毕了\n");
    
    }
    
    
    展开全文
  • java 二维数组输入输出问题

    千次阅读 2021-02-12 10:55:02
    java 二维数组输入输出问题有一个二维数组 里面包含了很大的数字。我要把它通过输出流存储在.dat文件中 然后在另一个程序中把这些信息读取出来,并且存储在另外一个二维数组中。请问该怎么办?这个数组如下:int ...

    java 二维数组的输入输出问题

    有一个二维数组 里面包含了很大的数字。我要把它通过输出流存储在.dat文件中 然后在另一个程序中把这些信息读取出来,并且存储在另外一个二维数组中。请问该怎么办?这个数组如下:

    int mapl[][]={

    { 0, 0, 0, 0, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 178, 0,

    0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0 },

    { 0, 0, 0, 0, 178, 120, 0, 175, 176, 177, 0, 0, 323, 0, 178, 0,

    0, 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0 },

    { 0, 0, 0, 0, 178, 0, 166, 166, 287, 168, 150, 0, 353, 0, 178, 0,

    0, 0, 0, 0, 0, 158, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0 },

    { 0, 0, 0, 0, 178, 263, 166, 316, 317, 318, 180, 0, 0, 0, 178, 0,

    0, 0, 0, 0, 0, 158, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

    0, 0, 0, 0, 0, 0 },

    };

    小弟菜鸟,我在做程序。急需解决!!!感激不尽!!!

    灌灌123

    发布

    2个回答

    67b0a70febe552c922c54bb8560d6ef6.png

    cbf533cb6158c7abf5f93231d4731125.png

    这样遍历才对:

    for(int[] i:a){

    for(int j:i){

    system.out.print(j);

    }

    system.out.println();

    }

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    1f1e4ccf50fc2b095c7d9035de51b2a3.png

    我说的是怎么存入.dat文件中 然后再另外的程序中读取

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    精华知识

    展开全文
  • 二维数组输入输出子函数
  • C++二维数组输出输入

    千次阅读 2021-07-15 16:37:32
    C++二维数组输出输入
  • 二维数组输入输出.

    千次阅读 2021-10-30 22:43:54
    请编写程序,实现二维数组输入输出。 public abstract class Demo05 { public static void main(String[] args) { //1、定义一个3行4列的数组 int [][]x=new int[3][4]; Scanner is=new Scanner...
  • 1141 二维数组输入输出

    千次阅读 2021-12-13 22:41:18
    输入m行n列的二维数组的值,再按行列形式输出输入要求 第一行输入m,n代表行数和列数。接着输入具体的m*n个元素。 输出要求 按行列形式换行输出。每一个数据后面都有空格,一行输出完毕后换行。 输入...
  • 【C】二维数组输入输出

    千次阅读 2021-12-14 16:50:03
    数组常与循环配合使用。 #include<stdio.h> #define N 3 int main(void) { int i, j; int score[N][N]; printf("Please input:\n"); for (i = 0; i < N; i++) for (j = 0; j < N; j++) { ...
  • C++二维数组 | 二维数组输出0-6

    千次阅读 2020-12-01 09:44:12
    C++二维数组 C++的二维数组是指具有两个下标的数组,有些数据要依赖于两个因素才能惟一地确定,因此才会引入二维数组。 C++二维数组的定义 C++中定义二维数组的一般格式: 类型标识符 数组名[常量表达式] [常量...
  • 有下面这样的一个二维表,请将其使用二维数组输出 姓名 语文 数学 英语 张三 80 70 90 李四 40 50 90 王五 90 98 100 题解 与几位童鞋交流了一下发现他们都把汉字单独拿出来了,只用数组存储的成绩,...
  • 这里要用到三个自定义的函数,分别是输入输出,求和。 我用的是input, output 和 sum , 大家随意,只要和其他函数不冲突就可以了! 不说那么多废话,直接上代码,大家自己看。 #include <stdio.h> #...
  • c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度。 例如: #include void func(int n, char str[ ][5] ) { int i; for(i = 0; i < n; i++) printf("/nstr...
  • 二维数组有多行多列,例如a[2][3]={{0,1,2},{3,4,5}},表示有两行三列,第一行是0,1,2,第二行是3,4,5。 一维数组的输出方式 如果使用一维数组输出一段数字,其代码如下: #include<stdio.h> int main() { ...
  • public static void main(String[] args) { Scanner in=new Scanner(System.in)...//二维数组行数 System.out.println("输入列数"); int columns=in.nextInt();//二维数组列数 int matrix[][] =new int[rows][colum
  • 本篇文章主要介绍了php中遍历二维数组并以表格的形式输出,具有一定的参考价值,有兴趣的可以了解一下。
  • 主要介绍了Java二维数组简单定义与使用方法,结合实例形式简单分析了java二维数组的定义、使用方法及相关注意事项,需要的朋友可以参考下
  • 前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘。这里以输入1-9,3*3矩阵为例 n=int(input()) line=[[0]*n]*n for i in range(n): line[i]=input().split(' ') print(line) 使用数据转换为int即可...
  • 输入n行m列的整数,原样输出
  • 输入5个同学的学号和姓名(格式:“姓-名”),存储在二维数组中检查输入同学学号和姓名的格式,不符合要求,则输出提示:“数据格式错误,请重新输入”,对输入同学的信息按学号排序。这是今天java老师布置的课堂...
  • 主要介绍了C语言二维数组中的查找的实例的相关资料,需要的朋友可以参考下
  • (JAVA练习)输入输出二维数组

    千次阅读 2020-12-07 08:55:28
    输入输出二维数组 解答 import java.util.Scanner; public class Erweishuzu { public static void main(String[] args) { // 二维数组练习 Scanner sc=new Scanner(System.in); int[][] b=new int[3][2]; ...
  • 二维数组输入输出、转置

    万次阅读 2018-12-09 16:05:41
    1.inputTwoArry 输入函数 用于二维数组的初始化。(也就是赋值)  实现:给函数中传入要初始化数组的地址,行列大小。(int a[][N],int m,int n) 注意 二维数组做参数需要确定列数。 2.outputTwoArry1 输出函数 ...
  • 下面小编就为大家带来一篇Java中增强for循环在一维数组和二维数组中的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • #include<stdio.h> void Arr_1() { int i; int Arr_1[10] = { 1,21,3,4,56,7,9,87,99,15...//输出维数组 } printf("\n"); return 0; } void Arr_2() { int j; int k; int Arr_2[3][4] = { {41, 85, 9
  • 函数输出二维数组C/C++

    千次阅读 2021-03-19 13:35:59
    )//补全参数,将二维数组当作参数,然后输出整个二维数组输入 第一行N,M; 下面N*M的矩阵,代表数组的元素 注意下标均从1开始 输出 整个二维数组 注意:每一行的末尾不能有空格 样例输入 Copy 3 3 1 2 3 3 2 1 1 ...
  • 二维数组输入输出

    万次阅读 2018-02-27 23:55:23
    二维数组我知道的有两种方法第一种方法是平时常见的方法,用两个循环,例如 for(i=0;i&lt;=n-1;i++) for(j=0;j&lt;=n-1;j++) cin&gt;&gt;a[i];第二种方法不太常见#include&lt;iostream&gt...
  • 1.一维数组 1.使用数组定义多个变量可以类比于for循环定义,相较而言,使用数组定义已知数量的多个变量操作更加简单,代码更少. 2.数组本身就是一个变量,只是数组存储了一组数据类型相同的数据,同一数组中输入不同...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 165,058
精华内容 66,023
关键字:

二维数组输入输出