精华内容
下载资源
问答
  • 利用C语言可以实现对数组的各种操作,如输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在、给数组元素排序等功能,接下来,我们对这些功能进行一一...

    概述

    利用C语言可以实现对数组的各种操作,如输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在、给数组元素排序等功能,接下来,我们对这些功能进行一一实现。

    代码编写

    头文件、声明

    这是每个C语言程序都不能缺少的部分,本程序相关头文件及声明如下:

    #include <stdio.h>
    void input(int array[10],int n);
    void output(int array[10],int n);
    int max(int array[10],int n);
    int min(int array[10],int n);
    double pjz(int array[10],int n);
    int find(int array[10],int n);
    void px(int array[10],int n);
    

    主函数

    为了方便阅读,上述各个功能都编写对应的子函数进行实现,在主函数中我们只进行子函数调用及相关变量的定义、子函数参数传入,具体代码如下:

    int main()
    {
    	int array[10]={0};
    	int i,n,h;
    	do
    	{
    		printf("请输入数组元素总数n(0<n<=10):\n");
    		scanf("%d",&n);
    	}while(n<=0||n>10);
    	input(array,n);
    	h=find(array,n);
    	output(array,n);
    	px(array,n);
    	printf("数组元素的平均值是:%f\n",pjz(array,n));
    	printf("数组元素最大值为:%d\n",max(array,n));
    	printf("数组元素最小值为:%d\n",min(array,n));
    	if(h==-1)
    	    printf("你所寻找的元素不存在!\n");
    	else
    		printf("你所寻找的元素的下标为:%d\n",h);
    	printf("你所输入的元素按从小到大排序为:\n");
    	for(i=0;i<n;i++)
    		printf("%8d",array[i]);
    	printf("\n");
    	return 0;
    }
    

    输入、输出功能子函数

    输入功能子函数实现引导用户输入数组元素并转存到已定义的数组中的功能,具体代码如下:

    void input(int array[10],int n)/*函数功能:输入元素*/
    {
    	int i;
    	printf("请输入%d个数组元素:\n",n);
    	for (i=0;i<n;i++)
    		scanf("%d",&array[i]);
    }
    

    同理,输出功能子函数实现将数组元素显示在屏幕上的功能,具体代码如下:

    void output(int array[10],int n)/*函数功能:输出函数*/
    {
    	int i;
    	printf("您输入的数组元素是:\n");
    	for (i=0;i<n;i++)
    		printf("%8d",array[i]);
    	printf("\n");
    }
    

    数组元素最大/小值寻找

    下面这个子函数的功能是寻找数组的最大值,运用的是遍历数组的方法,首先将数组的第一个元素视为最大值,并将第一个元素的值存到已经定义的变量“max”中,然后对数组元素进行遍历,每次比较,都将两者中数值较大的元素赋值给变量“max”,这样就能实现最大值寻找的功能了。具体代码如下:

    int max(int array[10],int n)/*函数功能:求数组元素最大值*/
    {
    	int i,max;
    	max=array[0];
    	for(i=1;i<n-1;i++)
    		if(max<array[i])
    		  max=array[i+1];
    	return max;
    }
    

    同理,可以运用相同的方法实现寻找数组最小值的功能,具体代码如下:

    int min(int array[10],int n)/*函数功能:求数组元素的最小值*/
    {
    	int i,min;
    	min=array[0];
    	for(i=1;i<n-1;i++)
    		if(min>array[i])
    			min=array[i];
    	return min;
    }
    

    “求数组元素平均值”功能编写

    这个子函数实现数组元素平均值的计算,实现思路是先对数组元素进行求和,再除以数组元素个数(数组长度),具体代码如下:

    double pjz(int array[10],int n)/*函数功能:求平均值*/
    {
    	double sum=0 ,ave;/*注意:平均值与元素合应定义为双精度型,防止出现错误*/
    	int i;
    	for(i=0;i<n;i++)
    		sum+=array[i];
    	ave=sum/n;
    	return ave;
    }
    

    “寻找元素”功能实现

    这个子函数实现的功能是引导用户输入其寻找的元素,并查找此数值元素是否存在,若存在,则输出对应元素的下标,否则则提示用户“你所寻找的元素不存在”。具体代码如下:

    int find(int array[10],int n)/*函数功能:寻找元素*/
    {
    	int a,b,i,flag;
    	flag=-1;
    	printf("请输入你所寻找的元素:\n");
    	scanf("%d",&a);
    	for (i=0;i<n;i++)
    		if(a==array[i])
    		   flag=i+1;
    		return flag;
    }
    

    数组元素排序

    这个子函数实现的功能是对数组元素以某种规则进行排序并将排序后的数组送屏幕显示(下列代码采用的排序规则是数组元素由小到大进行排列),采用的排序方法为选择排序法,具体代码如下:

    void px(int array[10],int n)/*函数功能:选择排序法*/
    {
    	int i,j,temp;
    	for(i=0;i<n-1;i++)
    		for(j=n-1;j>i;j--)
    			if(array[j]<array[j-1])
    			{
    				temp=array[j-1];
    				array[j-1]=array[j];
    				array[j]=temp;
    			}
    }
    

    如果要采取由大到小的排序方式,只需要对上述代码稍加进行修改即可。

    运行效果图

    将上述代码整合到一个.c文件中并运行,效果图如下:
    运行效果图

    后记

    这个程序还可以进行各种扩展,如在寻找到用户所寻找的数组元素后,可以对该元素进行各种操作等,欢迎各位伙伴留言探讨~


    2021.03.01更新:刚刚看到自己上传的源码需要积分才能下载,enm如果大家没有积分的话,可以微信搜索我的个人公众号“茶迁”或者扫描下图,关注后在后台回复“数组”,就可以直接拿到所有源码啦。我平时也会在公众号发一些编程相关的文章,欢迎大家关注~
    茶迁

    展开全文
  • Java 数组元素的删除

    万次阅读 2019-05-28 10:17:15
    通过创建新的数组,将保留的原数组中的元素赋值到新数组来实现原数组元素的删除。同理,可以实现数组添加元素。 package package1; import java.util.Arrays; public class ArrayTest1 { public static void ...

    Java数组的长度固定,因此无法直接删除数组中的元素。

    通过创建新的数组,将保留的原数组中的元素赋值到新数组来实现原数组元素的删除。同理,可以实现数组添加元素。

    package package1;
    
    import java.util.Arrays;
    
    public class ArrayTest1 {
    
    	public static void main(String[] args) {
    		int[] array1 = new int[] {4, 5, 6, 7};
    		int num = 2;
    		int[] newArray = new int[array1.length-1];
    		
    		for(int i=0;i<newArray.length; i++) {
    			// 判断元素是否越界
    			if (num < 0 || num >= array1.length) {
    				throw new RuntimeException("元素越界... "); 
    			} 
    			// 
    			if(i<num) {
    				newArray[i] = array1[i];
    			}
    			else {
    				newArray[i] = array1[i+1];
    			}
    		}
    		// 打印输出数组内容
    		System.out.println(Arrays.toString(array1));
    		array1 = newArray;
    		System.out.println(Arrays.toString(array1));
    	}
    }
    
    展开全文
  • 数组元素去重的方法

    万次阅读 2019-05-14 14:32:39
    今天给朋友们带来数组元素去重的方法: 首先我们定义一组数据: let array = [3, 1, 7, 1, 3, 2, 5, 4, 3, 2, 5, 7, 8, 9, 8]; let newArray = []; 接下来我们分别用不同的方法去对他进行去重。放到newArray里面。 ...

    今天给朋友们带来数组元素去重的方法:

    首先我们定义一组数据:

    let array = [3, 1, 7, 1, 3, 2, 5, 4, 3, 2, 5, 7, 8, 9, 8];
    let newArray = [];
    

    接下来我们分别用不同的方法去对他进行去重。放到newArray里面。

    一:ES3普通循环
    function has(array,val){
    	for(var i=0,len=array.length;i<len;i++){
    		if(array[i]===val)
    			return true;
    	}
    	return false;
    }
    for (let i = 0, len = array.length; i < len; i++) {
    	if(!has(newArray, array[i])) {
    		newArray.push(array[i]);
    	}
    }
    

    压缩到一个函数里:

    function uniqueArray(arr) {
    	let temp = [];
    	for (let i = 0; i < arr.length; i++) {
    		if (temp.indexOf(arr[i]) == -1) {
    			temp.push(arr[i]);
    		}
    	}
    	return temp;
    }
    
    二:ES5中的方法:forEach、indexOf
    array.forEach(function(curr) {
    	if (newArray.indexOf(curr) === -1) {
    		newArray.push(curr);
    	}
    })
    
    三:ES5中的reduce方法:
    newArray = array.reduce((init, curr) => {
    	if (init.indexOf(curr) === -1) {
    		init.push(curr);
    	}
    	return init;
    }, [])
    
    四:ES5中的Array.from()和ES6Set()方法结合:
    newArray = Array.from(new Set(array));
    
    五:不推荐的方法:
    let set = new Set();
    array.forEach(function(curr){
    	set.add(curr);
    });
    newArray = Array.from(set);
    
    newArray = Array.from(new Set(array));
    

    我们不管用上述的哪一种方法都会发现newArray里面已经没有重复的值了,我们已经完成了去重。


    数组中的对象去重:

    请看此:https://blog.csdn.net/weixin_43606158/article/details/99648341

    展开全文
  • 定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数,叉乘加法

    首先要知道java中的数组是线性排列的

    其次要知道数组的初始标度为0

    例如定义了一个二维数组 a[1][2],则数组详细为

    0】【0】; 【0】【1】; 【0】【2】;
    【1】【0】; 【1】【1】; 【1】【2】;
    

    共6个数组元素

    所以可知:
    【1】是为行,共两行(因为是从0开始数起)
    【2】是 列,共3️⃣列(因为是从0开始数起)

    因此我们这时再看这道题:

    定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为多少?

    案例分析:首先行限制在3行内,所以在三行内的所有元素都满足即为
    3*7=21个元素

    其次列限制在 4列内,所以在第4列时就只有 【3】【0】;【3】【1】【3】【2】;【3】【3】;所以共4个
    (【3】【4】;这个就不是a[3][4]前的数组元素了

    因此一共有21+4=25个元素;

    详细可看

    a[0][0] a[0][1] a[0][2] a[0][3] a[0][4] a[0][5] a[0][6]
    a[1][0] a[1][1] a[1][2] a[1][3] a[1][4] a[1][5] a[1][6]
    a[2][0] a[2][1] a[2][2] a[2][3] a[2][4] a[2][5] a[2][6]
    a[3][0] a[3][1] a[3][2] a[3][3]
    

    其实二维数组是线性排列起来的。

    所以a[3][4]之前的是0.1.2行的所有,外加3行的0.1.2.3列

    快速计算这种题(叉乘加法)

    例如:定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数

    定义【6】【7】
    求【3】【4】前的数组元素

    计算过程
    用所求的行乘以定义的列,再加上所求的行=前数组元素
    3*7+4=21

    自己总结的,也挺好用

    再看一题

    定义了int型二维数组a[5][7]后,数组元素a[2][5]前的数组元素个数

    叉乘加法
    定义的【5】【7】
    所求的【2】【5】前

    2*7+5=19个

    完美解决!觉得有用点个赞吧

    展开全文
  • 引用数组元素

    千次阅读 2019-04-24 17:15:47
    引用一个数组元素可以有以下两种方法: (1)指针法。有 *(a+i), *(p+i) 两种表现形式,都是用间接访问的方法来引用数组元素。 (2)下标法。有a[i] 和 p[i] 两种形式。在编译时这两种形式也要处理成 *(a+i) 或 *(p+...
  • 数组filter方法对数组元素进行过滤

    万次阅读 2018-03-19 10:12:46
    Array.prototype.filter对数组中元素进行... * @param {number} item 当前迭代的数组元素 * @param {number} index 当前迭代的数组元素下下标 * @param {array} array 原数组 */ let arr = [1,2,6,3,4,5]; le...
  • 二维数组中数组元素存储地址的计算一问

    万次阅读 多人点赞 2019-01-31 08:55:59
    关于二维数组中数组元素的存储地址,有同学问出了个好问题。  在我的课件中,出现了下面的讲解:  a[i][j]的地址是p+(i*col+j)*d(d是数组元素所占的字节数)。  同学编程序进行验证,出问题了:  地球停止...
  • 对任意一个一维数组,从中找出数组元素的最大值和最小值并输出 。 要求: 1)数组有10个元素; 2)使用scanf函数实现数组元素的输入,输入前给出必要的提示信息; 3)输出时,首先输出数组的十个元素,然后输出其...
  • Python数组元素添加修改与删除

    万次阅读 热门讨论 2018-09-29 12:13:20
    数组 数组是一种有序的集合,可以随时添加和删除其中的元素...访问数组元素 用索引来访问list中每一个位置的元素,记得索引是从0开始的: student=['jack','Bob','Harry','Micle'] print(student) print(student[0...
  • 数组元素的赋值和遍历数组

    千次阅读 2016-03-26 15:30:43
    数组元素的赋值 数组遍历
  • Java中删除数组元素

    千次阅读 2019-05-09 18:01:26
    Java中删除数组元素 方法: 通过使用remove()方法来删除数组元素 代码: import java.util.ArrayList; public class ArrayRemove { public static void main(String[] args) { ArrayList objArray = new ...
  • C编译程序用数组名存放数组在...指针移动方式访问数组元素: int a[5], *p; // a存放了数组的首地址 p=a; // 数组首地址赋给p p++; // 向下移动4个字节 指针与数组名都是地址,因此可以混合使用访问数组元素。...
  • 数组元素逆置

    千次阅读 2018-04-09 22:48:47
    1.数组元素逆置,就是把数组中的元素进行多次交换,所以先来解决两个数字交换的问题: int a=11; int b=22;//定义两个整型数据并赋值 首先探讨不运用中间变量的方法: (1)加法实现 a+=b; b=a-b; a-=b; (2...
  • 数组元素默认的初始值都是什么?

    万次阅读 2019-01-04 20:26:26
    byte 型数组元素默认初始值是 0 。 short 型数组元素的默认初始值是 0 。 int 型数组元素的默认初始值是 0 。 long 型数组元素的默认初始值是 0L。 float 型数组元素的默认初始值是 0.0f。 double 型数组元素的...
  • 关于删除数组元素,最熟悉不过:shift-----删除数组第一个元素,并返回该元素,原数组被改变;pop-----删除数组最后一个元素,并返回该元素,原数组被改变;更强大一些的slice(start,end),它主要是截取的意思:slice-...
  • 数组元素作为函数参数

    千次阅读 2018-11-08 15:32:35
    数组元素做参数为值传递 数组名做参数为地址传递
  • 数组元素的初始化默认值

    千次阅读 2019-08-07 12:59:39
    一维数组元素的初始化默认值 整型:0 浮点型:0.0 char型:0或'\u0000' (而非'0') boolean型:false 运用数据类型:null 二维数组元素的初始化默认值,二维数据分为外层数组的元素,内层数组的元素 方式一...
  • Java数组元素求和

    千次阅读 2019-10-18 18:46:31
    今天给大家解析,Java中数组元素求和的过程 一听到求和我们应该首先想到,要运用到**+=** public class Qiuhe { public static void main(String[] args) { //定义一个静态初始化 int[] arr = {1, 2, 3, 4, 5, 6, 7...
  • JAVA数组元素比较

    千次阅读 2018-12-26 08:33:09
    有时候在面试的过程中会被问及数组元素的比较,获取相同的元素和不同的元素。 一、获取相同的元素 将数组存放到Set集合中,首先排除掉相同的元素,然后进行元素的比较。 static Set&amp;amp;lt;Integer&...
  • 指向数组元素的指针和指针数组

    千次阅读 2019-04-17 07:52:32
    定义指向数组元素的指针 定义与赋值 例:int a[10], *pa; pa=&a[0]; 或 pa=a; 等效的形式 经过上述定义及赋值后 *pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i]. a[i], *(pa+i),...
  • JS 数组去重(数组元素是对象的情况)
  • 数组元素首地址和数组首地址区别

    千次阅读 2019-09-18 18:15:46
    printf("数组元素首地址 :%d\n",arr); //数组元素首地址 2293280 printf("数组首地址 :%d\n",&arr); //数组首地址 2293280 printf("数组元素首地址+1 :%d\n",arr+1); //数组元素首地址 2293284 ...
  • 例题:请编写一个函数fun,它的功能是:找出一维整型数组元素中最小的值和它所在的下标,最小的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。 主函数中a是数组名,n是a中的数据个数,min存放...
  • c语言 用指针对数组元素排序

    千次阅读 2020-04-26 20:30:27
    用指针对数组元素排序 请用程序实现 使用指针对数组元素进行由小到大排序。 函数定义 void sort (int n, int *p); 参数说明 n, 整型,表示数组长度 p, 整型指针,表示需要排序的数组 示例 1 输入 23 5 7 9 1 67 98 ...
  • jquery 增加与删除数组元素

    千次阅读 2019-07-02 12:49:34
    1.数组元素的添加 demoArray.push(value); var demo=new Array(); var key=[4,5]; demo.push(1);//插入数字 demo.push(key);//插入一个数组 demo.push("字符串");//插入字符串 demo.push("str"); 2.数组元素的...
  • 如何计算数组元素个数?

    千次阅读 2021-01-24 10:35:03
    我们所说的数组元素个数是指总元素个数 例如: arr[10]中有10个元素 arr[3][4]中有3X4=12个元素 那么怎么能求出这个个数给计算机呢? 对于一维数组 #include <stdio.h> int main() { int arr[10] = { 0 }; ...
  • 前几天看到一个算法题:有两个数组A,B,大小都为 n,数组元素的值任意,且无序,要求通过交换A和B中的元素,使得数组A中元素的和与数组B中元素的和之间的差最小。 我的想法就是:将两个数组合并为一个数组,并排序...
  • Java中输出数组元素

    千次阅读 2019-05-20 16:05:03
    Java中输出数组元素 方法: 通过重载OutArrayElemrnt类的printArray方法输出不同类型(整型,双精度及字符型)的数组 代码: public class OutArrayElement { public static void main(String[] args) { Integer[]...
  • js实现数组元素上下移动

    万次阅读 2016-12-14 13:18:27
    交换数组可以实现元素上下移动了,这个效果我们在表格或以前排序算法中都会用到,下面来看一个JavaScript下实现交换数组元素上下移动例子 在写项目的时候,要实现一个数组记录上下移动的示例。写起来也没有没...
  • C语言指针实现逆序输出数组元素

    千次阅读 2020-07-16 11:08:13
    C语言指针实现逆序输出数组元素 C语言指针实现逆序输出数组元素 实验平台:codeBlocks #include <stdio.h> #include <stdlib.h> //逆序输出函数 void swap(int *p, int m); int main() { int a[10], ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 310,153
精华内容 124,061
关键字:

数组元素