2024.1.4

        今天学了些什么呢?回忆下:主要搞了一下 指针的进阶,指针数组和数组指针,这大抵是相当抽象的东西,确实很难学啊,绕来绕去的,但是不必多言——为什么要攀登珠穆朗玛峰?因为它就在那儿!

#define _CRT_SECURE_NO_WARNINGS
#include
/*int main()
{
	int arr1[] = { 1,2,3,4,5 };
	int arr2[] = { 2,3,4,5,6 };
	int arr3[] = { 3,4,5,6,7 };
	int* p[3] = { arr1,arr2,arr3 };//指针数组进行存储,每个元素相当于一个数组
	int i, j;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			printf("%d ", p[i][j]);
		}
		printf("\n");
	}
}*/
int main()
{
	/*int arr[] = { 1,2,3,4,5,6,7,8,9 };//数组指针与一维数组
	int (*p)[9] = &arr;
	int i = 0;
	for (i = 0; i < 9; i++)
	{
		printf("%d ", *((*p) + i));
	}*/
	int arr[3][5] = { 1,2,3,4,5,2,3,4,5,6,3,4,5,6,7 };//数组指针与二维数组
	int(*p)[5] = &arr;
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		int j = 0;
		for (j = 0; j < 5; j++)
		{
			printf("%d ", *((*p) + i) + j);
		}
		printf("\n");
	}
	return 0;
}

        大部分时间都在研究指针去了,然后还学了一下排序(虽然很久以前就已经学了排序了),基础的冒泡排序可以说已经信手拈来了,然后还学了一下qsort的使用:

#define _CRT_SECURE_NO_WARNINGS
#include
void input(int arr[], int n)
{
	int i = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);
	}
}
void sort(int arr[], int n)//简单的冒泡排序
{
	int i, j;
	printf("选择你的排序方式?\n1从大到小,2从小到大\n");
	int choice;
	scanf("%d", &choice);
	switch (choice)
	{
	case 1:
	{
		for (i = 0; i < n - 1; i++)
		{
			for (j = 0; j < n - 1 - i; j++)
			{
				if (arr[j] < arr[j + 1])
				{
					int temp = arr[j + 1];
					arr[j + 1] = arr[j];
					arr[j] = temp;
				}
			}
		}
		break;
	}
	case 2:
	{
		for (i = 0; i < n - 1; i++)
		{
			for (j = 0; j < n - 1 - i; j++)
			{
				if (arr[j] > arr[j + 1])
				{
					int temp = arr[j + 1];
					arr[j + 1] = arr[j];
					arr[j] = temp;
				}
			}
		}
		break;
	}
	default:
	{
		printf("error\n");
	}
	}
}
void output(int arr[], int n)
{
	int i = 0;
	for (i = 0; i < n; i++)
	{
		printf("%d ", arr[i]);
	}
}
int main()
{
	int arr[100];
	int n;
	scanf("%d", &n);
	input(arr, n);
	sort(arr, n);
	output(arr, n);
	return 0;
}
//int com(const void* e1, const void* e2)//需要给qsort函数传递比较的方法
//{
//	return (*(int*)e1 - *(int*)e2);
//}
//int main()
//{
//	int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	qsort(arr, sz, sizeof(int), com);//qsort函数与其需要的参数
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}

        排序还是十分有用的,比如在数组的二分查找中,因为二分查找只能查找有序的数,所以说我们可以先排序再查找……

        每天都是无比的充实,我们软件工程专业真是太好了(好好好),明天加油! 

你可能感兴趣的:(c语言)