1. 程式人生 > >楊輝三角和魔方陣的實現(12.14學習總結)

楊輝三角和魔方陣的實現(12.14學習總結)

今天上完C語言課,感覺受益匪淺,漸漸地覺得自己喜歡上了程式設計,不容易呀,本科四年就是也學程式設計,當時為啥覺得那麼枯燥難懂呢,雖然現在也覺得挺難,但是可以接受。嘻嘻。

今天主要講了函式指標和課後題講解。

1.函式指標

int Max(int a,int b)
{
	return a>b ? a : b;
}

int Min(int a,int b)
{
	return a<b ? a : b;
}

int Avg(int a,int b)
{
	return (a+b)/2;
}

int main()
{
	int (*p)(int,int);//指向函式的指標
	//int (*p1)[4];

	//1常規使用
	p = &Max;
	int x = (*p)(10,20);
	printf("%d\n",x);
	//&p因為是普通區域性變數,所以存在棧中, 而p因為是函式,所以存在程式碼段
	//2函式名錶示函式本身的入口地址
	p = Min;//Min等價&Min
	x = p(10,20);
	printf("%d\n",x);

	return 0;
}

2.static 和  const區別

//static用於修飾連結屬性
//const定義常量

3.選擇法排序

每次從待排序序列找到最小值,和待排序序列第一個值交換

void SelectSort(int *arr,int len)
{
	int tmp;
	int minIndex;//儲存最小值的下標
	for(int i=0;i<len-1;i++)
	{
		minIndex = i;
		for(int j=i;j<len;j++)
		{
			if(arr[minIndex] > arr[j])
			{
				minIndex = j;
			}
		}
		
		tmp = arr[i];
		arr[i] = arr[minIndex];
		arr[minIndex] = tmp;
	}
}

void Show(int *arr,int len)
{
	for(int i=0;i<len;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
}

int main()
{
int arr[] = {6,9,0,1,4,8,12,34,8,99,22,33,11};


	SelectSort(arr,sizeof(arr)/sizeof(arr[0]));
	Show(arr,sizeof(arr)/sizeof(arr[0]));
}

主要思想是儲存最小值下標。


4.楊輝三角

void PascalTriangle()
{
#define SIZE 10
	int arr[SIZE][SIZE];
	int i;
	int j;
	for(i=0;i<SIZE;i++)
	{
		for(j=0;j<=i;j++)
		{
			if(j==0 || i==j)
			{
				arr[i][j] = 1;
			}
			else
			{
				arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
			}
		}
	}
	for(i=0;i<SIZE;i++)
	{
		for(j=0;j<=i;j++)
		{
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}
}

楊輝三角的思想是第一列和對角線全為1,其他數字是上一行同一列數字加上上一行前一列數字。