初始化一个数组

#include <stdio.h>

void init(int arr[],int len)
{
	int i = 0;
	for (i = 0; i < len; i++)
	{
		arr[i] = len - i;
	}
}

void show(int *parr, int len)
{
	int i = 0;
	for (i = 0; i < len; i++)
	{
		printf("%d ", *(parr + i));
	}
	printf("\n");
}

void empty(int *parr, int len)
{
	int i = 0;
	for (i = 0; i < len; i++)
	{
		parr[i] = 0;
	}
}
//冒泡排序法
void sort(int arr[], int len)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < len-1; i++)
	{
		for (j = 0; j < len - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j+1] = tmp;
			}
		}
	}
}

int main()
{
	int a[10];
	init(a,sizeof(a)/sizeof(a[0]));
	show(a, sizeof(a) / sizeof(a[0]));
	sort(a, sizeof(a) / sizeof(a[0]));
	show(a, sizeof(a) / sizeof(a[0]));
	empty(a, sizeof(a) / sizeof(a[0]));
	return 0;
}

总结:

(1)在对数组进行赋值和清空时使用了for循环。但在赋值时也可使用scanf语句进行逐个输入赋值。

(2)在对数组进行排序时可以用选择排序法也可使用冒泡排序法。本代码是用的是冒泡排序法。

(3)在对函数调用时参数的个数与类型一定要与函数声明时的相同。

时间: 2024-08-03 10:53:25

初始化一个数组的相关文章

初始化一个多维数组

原文:初始化一个多维数组 <C和指针>第8章编程练习第1题: 1 /* 2 ** 初始化一个数组,其特定位置初始化为特定的值 3 */ 4 5 static unsigned char char_value[3][6][4][5] = { 6 { // 0 7 { // 0,0 8 { 0 } // 0,0,0 9 } 10 }, 11 { // 1 12 { // 1,0 13 { 0 } // 1,0,0 14 }, 15 { // 1,1 16 { 0 }, // 1,1,0 17 {

C语言创建一个数组,利用函数调用实现数组的初始化,逆置和清零

★创建一个数组,实现函数init初始化数组.empty清空数组.reverse函数完成数组元素的逆置. #include<stdio.h> #include<stdlib.h> #include<string.h> void menu() { printf("****************************************\n"); printf("***************1.初始化数组*************\n&

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /************************************************************************/ /*数组的结构体类型                                                    */ /*******************

创建一个数组,实现初始化、逆置和清空

创建一个数组, 实现函数init()初始化数组. 实现empty()清空数组. 实现reverse()函数完成数组元素的逆置. 要求:自己设计函数的参数,返回值. 代码如下: #include<stdio.h> #include<stdlib.h>   void init(int arr[],int len)/*数组不能写成arr应写为arr[]或*arr*/ { int i; printf("初始化数组:\n"); for(i=0;i<len;i++)

关于C语言: 初始化一个指向数组的指针变量为什么不需要&amp;符号?

C语言中数组名就是第一个元素的地址,所以可以直接把它赋给一个指针,不需要取地址. 1 void InitBiTree(SqBiTree T) 2 { // 构造空二叉树T.因为T是数组名,故不需要& 3 int i; 4 for(i=0;i<MAX_TREE_SIZE;i++) 5 T[i]=Nil; // 初值为空(Nil在主程中定义) 6 } 上述初始化代码中T是一个数组名,也就代表了数组的首地址,是一个地址,就不需要取地址符. 如下边初始化就不一样 1 void InitString(

如何初始化一个指针数组

指向数组的指针和存放指针的数组 指向数组的指针:char (*array)[5];含义是一个指向存放5个字符的数组的指针 存放指针的数组: char *array[5];含义是一个数组中存放了5个指向字符型数据的指针 一个是字符的数组  一个是字符型的数据

求一个数组的最大子数组(C/C++实现)

最大子数组:要求相连,加起来的和最大的子数组就是一个数组的最大子数组.编译环境:VS2012,顺便说句其实我是C#程序员,我只是喜欢学C++. 其实这是个半成品,还有些BUG在里面,不过总体的思路是这样的,求最大的子数组,由一个中位分开,就是数组的中间位置,然后分别求中间位置横跨的,左边的,和右边的最大的,然后比较三者的大小,最大的为最大子数组.思路来自算法导论.今天算是把伪代码都实现了,但是貌似有点BUG,不知道有大神帮我提一下不?为了节约时间,我索性把一些问题的解释放过来,是算法导论的,我也

关注C++细节——字面值初始化字符数组及字符串拷贝注意

char carr[] = "author:CSDN-iaccepted"; 此时,carr数组中元素的个数为21,最后一个位置用来存放空字符'\0'. 所以如果写成carr[21] = "author:CSDN-iaccepted";就是错误的. int clen = strlen(carr); int size = sizeof(carr); 这时候得到的clen = 21,size= 22.这就是因为strlen统计串中字符的个数,不计算最后的空字符,但是si

使用构造函数初始化成员数组

#include <iostream> using namespace std; class Box//盒子类 { public: //定义一个构造函数用于初始化对象数组 Box(int h, int w, int l); int volume();//计算盒子的体积 private: int height;//盒子的高 int width;//盒子的宽 int length;//盒子的长 }; //定义一个构造函数用于初始化对象数组 Box::Box(int h, int w, int l)