楊輝三角和魔方陣的實現(12.14學習總結)
阿新 • • 發佈:2018-11-27
今天上完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,其他數字是上一行同一列數字加上上一行前一列數字。