对数组初始化,清空,逆置

#include <stdio.h>
#include <assert.h>
#include <Windows.h>


void initArray(int a[], int size)
{
	assert(a);//断言
	int i = 0;
	for (; i < size; i++)
	{
		a[i] = i;
		printf("%d ", a[i]);
	}
	
}



void reverseArray(int a[], int size)
{
	int i = 0;
    int start = 0;
	int end = size - 1;
	for (; i < size;i++)
	{
		while (start < end)
		{
			//用异或交换元素
			a[start] ^= a[end];
			a[end] ^= a[start];
			a[start] ^= a[end];
			start++, end--;
			
		}
		printf("%d ", a[i]);
	}
}
void emptyArray(int a[], int size)
{
	assert(a);
	int i = 0;;
	for (; i < size; i++)
	{
		a[i] = 0;
		printf("%d ", a[i]);
	}
}

int main()
{
	int a[10];
	int size =sizeof(a)/sizeof(a[0]);//求数组大小
	printf("对数组进行初始化:\n");
	initArray(a,size);
	printf("\n");
	printf("对数组进行逆序:\n");
	reverseArray(a,size);
    printf("\n");
    printf("对数组进行清空:\n");
	emptyArray(a,size);

	system("pause");
	return 0;

}

assert(断言)的用法:

assert宏的原型定义在<assert.h>中,其作用是先计算表达式 expression ,如果expression的值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用abort 来终止程序运行。


猜你喜欢

转载自blog.csdn.net/freedom_222/article/details/80206294
今日推荐