关键词:
1 //数组间的关系arr[]中的数字为几,[]内就有几个数 2 // 内的数是从0开始,如需要打印应从0开数 3 如2,6,9,8,7打印arr[4]就是7 4 #include <stdio.h> 5 #include <stdlib.h> 6 int main() 7 8 int arr[] = 1,2,3,4,8; 9 10 printf("%d ", arr[3]); 11 12 system("pause"); 13 return 0; 14
随机生成数组:
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdlib.h>/*用到了srand函数,所以要有这个头文件*/ 3 #include<stdio.h> 4 5 #define MAX 15 6 7 int main() 8 9 int number[MAX] = 0 ; 10 int i; 11 unsigned int seed; 12 printf("手动输入随机数种子: "); 13 scanf("%d", &seed);/*手动输入种子*/ 14 srand(seed); 15 printf("产生随机数如下: "); 16 for (i = 0; i < MAX; i++) 17 number[i] = rand() % 100;/*产生100以内的随机整数*/ 18 printf("%d ", number[i]); 19 20 21 printf(" "); 22 system("pause"); 23 return 0; 24
程序开头宏定义max常量为15,接下来又定义了一个内涵15个数字的数组,循环15次,
用 number[i] = rand() % 100;/*产生100以内的随机整数*/ 随机产生15个整数
运行结果:随着输入数字的不同,结果也不同,输入数字一样,结果也一样。
二维数组的定义
二维数组定义的一般形式是:
类型说明符 数组名[常量表达式1][常量表达式2]
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。例如:
1 int a[3][4];
说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
a[0][0], a[0][1], a[0][2], a[0][3]
a[1][0], a[1][1], a[1][2], a[1][3]
a[2][0], a[2][1], a[2][2], a[2][3]
二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行之后顺次放入第二行。另一种是按列排列, 即放完一列之后再顺次放入第二列。
在C语言中,二维数组是按行排列的。即,先存放a[0]行,再存放a[1]行,最后存放a[2]行。每行中有四个元素也是依次存放。由于数组a说明为int类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节。
二维数组元素的引用
二维数组的元素也称为双下标变量,其表示的形式为:
数组名[下标][下标]
其中下标应为整型常量或整型表达式。例如:
a[3][4]
表示a数组三行四列的元素。
下标变量和数组说明在形式中有些相似,但这两者具有完全不同的含义。数组说明的方括号中给出的是某一维的长度,即可取下标的最大值;而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者可以是常量,变量或表达式。
一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。
张 | 王 | 李 | 赵 | 周 | |
数学(分数) | 96 | 60 | 68 | 99 | 76 |
C语言(分数) | 85 | 62 | 85 | 97 | 45 |
语文(分数) | 70 | 90 | 78 | 85 | 66 |
下面我自己设计了一个根据用户选择 :计算每位学生3门课的平均成绩 或者 计算每门课5个人的平均成绩
1 #include <stdio.h> 2 int main() 3 int i, j, z, x, average = 0, sum = 0, a[3][5], b[5][3], subject[3], person[5],chooice=0; 4 5 printf("请输入您要选择的成绩计算方式 1(各个科目平均分),2(每个人的平均分)"); 6 scanf_s("%d", &chooice); 7 if (chooice == 1) 8 printf("请按照科目输入成绩 "); 9 for (i = 0; i < 3; i++) 10 for (j = 0; j < 5; j++) 11 scanf_s("%d", &a[i][j]); 12 sum = sum + a[i][j]; 13 14 subject[i] = sum / 5; 15 sum = 0; 16 17 printf("math:%d c languag:%d Chinese:%d ", subject[0], subject[1], subject[2]); 18 19 20 else if (chooice == 2) 21 printf("请按照姓名输入成绩 "); 22 for (z = 0; z < 5; z++) 23 for (x = 0; x < 3; x++) 24 scanf_s("%d", &b[z][x]); 25 average = average + b[z][x]; 26 27 person[z] = average / 3; 28 average = 0; 29 30 31 printf("张:%d 王:%d 李:%d 赵:%d 周:%d ", person[0], person[1], person[2], person[3], person[4]); 32 33 34 else 35 36 printf("输入错误,只能输入(1或者2) "); 37 38 39
通过像一维数组一样访问二维数组的双线性插值的概念
】通过像一维数组一样访问二维数组的双线性插值的概念【英文标题】:TheConceptofBilinearInterpolationbyAccessing2-darraylike1-darraydoes【发布时间】:2016-06-0713:38:53【问题描述】:在二维数组中,有bmp文件的像素。它的大小是我缩放的宽... 查看详情
二维数组最大子数组(结对开发)
1.题目要求题目:返回一个二维整数数组中最大联通子数组的和。要求:输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。 2.设计思想:对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个... 查看详情
二维数组最大子数组(结对开发)
1.题目要求题目:返回一个二维整数数组中最大联通子数组的和。要求:输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。 2.设计思想:对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个... 查看详情
一维数组和二维数组(代码片段)
数组一维数组的创建与初始化数组的创建数组的概念:一组具有相同类型元素的集合。创建的方式:数组的元素类型数组名称指定数组的大小例:intarr[10]:创建了一个具有10个整形类型的数组。chararr[10]:创建了一个包含有10个字... 查看详情
java数组(代码片段)
目录数组的概念数组的使用一维数组一维数组的使用步骤:一维数组的声明一维数组的创建一维数组的访问多维数组二维数组的声明二维数组的创建二维数组的访问作业作业一:作业二:作业三:作业四:数... 查看详情
二维数组最大联通子数组和
...义的几行几列的矩阵,然后输入相关的值,再调用求二维数组最大联通子数组和的方法,最终输出最大值。2.出现问题:对于求联通子数组的这个思路不是很懂,不清楚。3.解决方案:先求每行的最大和最小块,再求总的最大值,... 查看详情
一维数组与二维数组的拼接与二维数组增加行
一维数组与二维数组的拼接numpy有很多的拼接函数。比如hstack和vstack等。网上又很多这样的总结帖子。但是两个数组能拼接的条件就是得满足两个数组的维度要相同。所以二维数组和一维数组拼接的时候需要使用newaxis将一维数组... 查看详情
二维数组与一维数组的比较
】二维数组与一维数组的比较【英文标题】:comparisonoftwodimensionalarraytoaonedimensionarray【发布时间】:2013-05-1918:50:43【问题描述】:我被困在这种情况下,我必须将一行二维数组与一维数组进行比较。两个数组都有像+和-和D这样的... 查看详情
二维数组
1.概念:二维数组是由一维数组组成的数组 2.语法:a.int[][]arr=newint[2][]; 定义了二维数组的长度,但是一维数组长度没有定义,一维数组没有申请内存空间null ... 查看详情
二维数组
1.概念:二维数组是由一维数组组成的数组 2.语法:a.int[][]arr=newint[2][]; 定义了二维数组的长度,但是一维数组长度没有定义,一维数组没有申请内存空间null ... 查看详情
二维数组
1.概念:二维数组是由一维数组组成的数组 2.语法:a.int[][]arr=newint[2][]; 定义了二维数组的长度,但是一维数组长度没有定义,一维数组没有申请内存空间null ... 查看详情
二维数组
1.概念:二维数组是由一维数组组成的数组 2.语法:a.int[][]arr=newint[2][]; 定义了二维数组的长度,但是一维数组长度没有定义,一维数组没有申请内存空间null ... 查看详情
二维数组
1.概念:二维数组是由一维数组组成的数组 2.语法:a.int[][]arr=newint[2][]; 定义了二维数组的长度,但是一维数组长度没有定义,一维数组没有申请内存空间null ... 查看详情
数组实验报告
C语言程序设计实验报告实验项目:1、一维数组的应用2、二维数组的应用3、字符数组应用姓名:曾福波 实验地点: 家 实验时间:2020年5月19日一、实验目的与要求1、一维数组的应... 查看详情
指针和二维数组
array这里指向的是第一行的五个元素 可以证明: 我画了一个图 二维数组指针的结论:①所谓的多维数组其实就是一维数组线性扩展得到的 一道题目: 查看详情
php将一个二维数组按照某个字段值合并成一维数组,如果有重复则将重复的合并成二维数组
...许不得转载。最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二维数组的第一维的键是特定字段的值,二维的键可以... 查看详情
jQuery:比较二维数组和一维数组
】jQuery:比较二维数组和一维数组【英文标题】:jQuery:Compare2Darraywith1Darray【发布时间】:2021-11-2423:39:33【问题描述】:假设我的代码中有2个javascript/jQuery数组。一个看起来像这样的二维数组(控制台输出):0:title:\'Freemium\',modu... 查看详情
二维数组的语法
知识点二维数组语法int[][]arrr=newint[2][];定义了二维数组的长度,但是一维数组长度没有定义,一维数组没有申请内存空间为null。int[][]arr=newint[2][3];定义了一维数组和二维数组的长度。一维数组分配了内存空间。一维数组的长度... 查看详情