C语言基础——数组运算

集成数组的初始化

int a[]={2,4,6,5,68,9,8,56,6};
  • 直接用大括号给出数组中所有元素的初始值
  • 不需要给出数组的大小,编译器来数

sizeof(a)/sizeof(a[0])
sizeof(a)得到数组整个的字节数的大小
sizeof(a[0])得到数组中单个元素所占的字节

  • 集成初始化时的定位

int a[10]={[0]=2,[2]=3,6,}
//{2,0,3,6,0,0,0,0,0,0}

数组的赋值

  • 数组本身不能被赋值,因此要将一个数组赋值给另一个数组必须采用遍历
for(i=0;i<length;i++)
{
	 b[i]=a[i];
}

数组运算

#include
int search(int key,int a[],int length)
{
	int ret=1;
	int i;
	for(i=0;i<length;i++){
		if(a[i]==key){
			ret=i;
			break;
		}
	}
	return ret;
}
int main(void)
{
	int a[]={2,4,6,7,1,3,5,9,11,13,23,14,32};
	int x;
	int loc;
	printf("请输入一个数字:");
	scanf("%d",&x);
	loc=search(x,a,sizeof(a)/sizeof(a[0]));
	if(loc!=-1){
		printf("%d在%d个位置上",x,loc);
	}else{
		printf("%d不存在",x);
	}
	return 0;
}

数组作为函数的参数时:

  • 不能在[]中给出数组的大小
  • 不能再用sizeof来计算数组的元素个数

数组作为函数参数时,必须用另一个参数来传入数组的大小

数组构建素数表

//建立素数表
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
    const int maxNumber = 100;
	int isPrime[100];
	int i;
	int x;
	for (i = 0;i < maxNumber;i++) {
		isPrime[i] = 1;
	}
	for (x = 2;x < maxNumber;x++) {
		if (isPrime[x]) {
			for (i = 2;i * x < maxNumber;i++) {
				isPrime[i * x] = 0;
			}
		}
	}
	for (i = 2;i < maxNumber;i++) {
		if (isPrime[i]) {
			printf("%d\t", i);
		}
	}
	printf("\n");
}

你可能感兴趣的:(自学C语言,c语言)