感受指標(在函式中的呼叫)
阿新 • • 發佈:2018-11-11
- 楊氏矩陣:陣列的每一行從左到右遞增
陣列的每一列從上到下遞增
在該陣列中查詢一個數字.(返回該數字的座標)如:
1 3 5
2 4 7
4 5 9
#include <stdio.h> #include <stdlib.h> //從左下角開始尋找:(遞迴的方法) int Rearch_r(int a[3][3],int roe,int col,int k,int x,int y,int *px,int *py) { if (x<0||y>=col) { *px=-1; *py=-1; return 0; } if (a[x][y]]==k) { *px=x; *py=y; return 1; } else if (a[x][y]>k) { Rearch_r(a,3,3,9,x-1,y,*px,*py); } else if (a[x][y]<k) { Rearch_r(a,3,3,9,x,y+1,*px,*py); } } int main ( ) { int a[3][3]={2,5,6,8,5,9,1,0,3}; Rearch_r(a,3,3,9,2,0,&px,&py); //2,0 表示左下角的座標,即從左下角開始尋找。 printf ("%d %d\n",px,py); return 0; } //從右上角開始尋找: int Rearch (int a[3][3],int row,int col,int k,int *px,int *py) { int i=0; int j=col-1; while (i<row&&j>=0) { if (a[i][j]==k) { *px=i; *py=j; return 1; } else if (a[i][j]>k) { j--; } else { i++; } } *px=-1; *py=-1; return 0; } int main ( ) { int a[3][3]={2,5,6,8,5,9,1,0,3}; Rearch (arr,3,3,9,&px,&py); printf ("%d %d\n",px,py); return 0; }
- 實現一組數中,奇數在前,偶數在後。
#include <stdio.h> int main ( ) { int arr[7] = {1,5,8,3,4,0,2}; int i = 0; int j = 0; while ( i<j )//保證在有效的範圍內迴圈 { while (i<j && (arr[i] % 2!=0)) { i++; //尋找到第一個偶數 } while (i<j && (arr[j] % 2!=1)) { j++; //尋找到第一個奇數 } if (i<j) { int tmp =arr[i]; arr[i]=arr[j]; arr[j]=tmp; } } for (i=0;i<7;i++) { printf ("%d ",arr[i]); } printf ("\n"); return 0; }