四时宝库

程序员的知识宝库

数组基础问题和易错知识点(数组典型例题)

一位数组的定义和打印方式

//方式1
int arr[10];
	for (int i = 0; i < 10; i++)
	{
		arr[i] = i;
		printf("%d ", arr[i]);
	}
//方式2
int arr[] = { 1,2,3,4,5,6 };
int len = (int)sizeof(arr) /sizeof(*arr);
	for (int i = 0; i < len; i++)
	{
		printf("%d ", arr[i]);
	}
//  方式3
int arr[6]= { 1,2,3,4,5,6 };
	for (int i = 0; i < 6; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (int i = 0; i < 6; i++)
	{
		printf("%d ", arr[i]);
	}

数组求最大最小值 并返回下标

int main()
{

	int arr[6] = { 3,6,8,0,9,22 };
	int max = arr[0];
	int min = arr[0];
	int index = 0;
	
	for (int i=0; i < 6; i++)
	{
		if (max < arr[i])
		{
			index = i;
			max =arr[i];
		}

	}
	printf("max=%d , index=%d\n", max, index);
	for (int i = 0; i < 6; i++)
	{
		if (min > arr[i])
		{
			index = i;
			min = arr[i];
		}

	}
	printf("min=%d, index=%d\n", min,index);
	
	system("pause");
	return 0;
}

数组逆置

//方法1
int main()
{
	int arr[6] = { 3,6,8,0,9,1 };
	int i;
	for (i = 0; i < 3; i++)
	{
		int tmp = arr[i];
		arr[i] = arr[5 - i];
		arr[5 - i] = tmp;
	}
	for (i = 0; i < 6; i++)
	{
		printf("%d", arr[i]);
	}
	system("pause");
	return 0;
}
//方法2
int main()
{

	int min = 0;
	int max = 5;
	int arr[6] = { 3,6,8,0,9,1 };
	while (min < max)//二头堵模型
	{
		int tmp = arr[min];
		arr[min] = arr[max];
		arr[max] = tmp;
		min++;
		max--;
	}
	for ( int i = 0; i < 6; i++)
	{
		printf("%d", arr[i]);
	}
	system("pause");
	return 0;
}

求数组的平均数且输出所有大于平均数的数

int main()
{
	int arr[] = { 2,6,6,0,2,2 };
	int len = (int)sizeof(arr) / sizeof(*arr);
	int sum = 0;
	int average;
	for (int i = 0; i < 6; i++)
	{
		sum += arr[i];
	}
	average = sum / len;
	printf("%d \n", average);
	for (int i = 0; i < 6; i++)
	{
		if (arr[i] > average)
			printf("%d ", arr[i]);
	}
	printf("hello");
	system("pause");
	return 0;

求水仙花数

int i ;
	for (i = 100; i < 1000; i++)
	{
		int a = i % 10;
		int b = i / 10 % 10;
		int c = i / 100;
		if (a*a*a + b*b*b + c*c*c == i)
			printf("%d ", i);
	}

求所有奇数的和

	int arr[7] = { 3,4,5,6,7,8,9 };
	int sum = 0;
	int i;
	for ( i = 0; i < 7; i++)
	{
		
		if (arr[i] % 2 == 1)
		{
			sum += arr[i];
		}
	}
	printf("sum=%d\n", sum);

求1-100所有素数

int i;
	
	for (i = 3; i < 100; i++)
	{
		int value = 0;
		for (int j = 2; j < i; j++)
		{
			if ((i%j) == 0)
			{
				value = 1;
				break;
			}
		}
		if (value == 0)
		{
			printf("%d ", i);
		}
	}

二维数组初始化和打印行列值


	int arr[2][3];//定义
//	int arr[1][2] = 0;//给1行2列赋值
	int arr[2][3] = { {1,2,3},{4,5,6} };//定义一个2维数组的同时,初始化成员
	//int arr[2][3] = { 0 };//初始化每一个都是0
	int i, j;
	int sum =0;
	for (i = 0; i < 2; i++)
	{
		for (j = 0; j < 3; j++)
		{
			sum += arr[i][j];
		}
		printf("%d ", sum);
	}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接