=0;i--) for (j=0;jb[j+1]) { temp=b[j]; b[j]=b[j+1]; b[j+1]=temp; }"> =0;i--) for (j=0;jb[j+1]) { temp=b[j]; b[j]=b[j+1]; b[j+1]=temp; }">

Presentation is loading. Please wait.

Presentation is loading. Please wait.

P. 1 Array ( 陣列 ) o 一、二維數值陣列的宣告與給值 #include void main() { int a[3]; int b[3]={22,34,56}; for (int i=0;i<3;i++) scanf(“%d”, &a[i]); /* &a[i] also could.

Similar presentations


Presentation on theme: "P. 1 Array ( 陣列 ) o 一、二維數值陣列的宣告與給值 #include void main() { int a[3]; int b[3]={22,34,56}; for (int i=0;i<3;i++) scanf(“%d”, &a[i]); /* &a[i] also could."— Presentation transcript:

1 P. 1 Array ( 陣列 ) o 一、二維數值陣列的宣告與給值 #include void main() { int a[3]; int b[3]={22,34,56}; for (int i=0;i<3;i++) scanf(“%d”, &a[i]); /* &a[i] also could be a+i */ } #include void main() { int a[2][3]; int b[2][3]={{8,45,36},{2,4,7}}; for (int i=0;i<2;i++) for (int j=0;j<3;j++) scanf(“%d”, &a[i][j]); } 陣列 (Array)

2 P. 2 Array ( 陣列 ) o 一維數值陣列的排序 #include void main() { int score[5]; int temp; int i,j; for (i=0;i<=4;i++) { printf("please input %dth student's score:",i); scanf("%d",&score[i]); } /* sorting */ for (i=0;i<=3;i++) for (j=i+1;j<=4;j++) if (score[i] > score[j]) { temp=score[i]; score[i]=score[j]; score[j]=temp; } clrscr(); for (i=0;i<=4;i++) printf("score[%d]=%d\n",i,score[i]); }

3 P. 3 Array ( 陣列 ) o 一維數值陣列的排序 ( 用副程式 ) #include #define SIZE 5 void sorting(int b[],int size); void main() { int a[SIZE]={35,4,67,22,7}; int i,j; char c; clrscr(); printf("orginal array is:\n"); for (i=0;i<SIZE;i++) printf("%d ",a[i]); sorting(a,SIZE); printf("\n \n after sorting is:\n"); for (i=0;i,i<SIZE;i++) printf("%d ",a[i]); c=getche(); } void sorting(int b[],int size) { int temp; int i,j; for (i=size-1;i>=0;i--) for (j=0;j<i;j++) if (b[j]>b[j+1]) { temp=b[j]; b[j]=b[j+1]; b[j+1]=temp; }

4 P. 4 Array ( 陣列 ) o 一維數值陣列的排序 ( 用兩個副程式 ) #include #define SIZE 5 void sorting(int b[],int size); void swap(int c[],int m,int n); void main() { int a[SIZE]={35,4,67,22,7}; int i,j; char c; clrscr(); printf("orginal array is:\n"); for (i=0;i<SIZE;i++) printf("%d ",a[i]); sorting(a,SIZE); printf("\n \n after sorting is:\n"); for (i=0;i,i<SIZE;i++) printf("%d ",a[i]); c=getche(); } void sorting(int b[],int size) { int i,j; for (i=size-1;i>=0;i--) for (j=0;j<i;j++) if (b[j]>b[j+1]) swap(b,j,j+1); } void swap(int c[],int m,int n) { int temp; temp=c[m]; c[m]=c[n]; c[n]=temp; }

5 P. 5 Array ( 陣列 ) o 一維字串陣列的給值 #include void main() { char a[]="abcdef"; char b[]={'a','b','c','d','e','f'}; char e[7]; char f[7]; int i; clrscr(); printf("please input the contents of array e:"); for (i=0;i<=5;i++) e[i]=getche(); e[6]='\0'; printf("\n"); printf("please input the contents of array f(6 chars):"); scanf("%s",f); clrscr(); printf("array a is:%s\n",a); printf("array b is:%s\n",b); printf("array e is:%s\n",e); printf("array f is:%s\n",f); }

6 P. 6 Array ( 陣列 ) o 二維字串陣列的給值 #include void main() { char a[3][10]={"john","mary","david"}; char b[3][10]={{'j','o','h','n'}, {'m','a','r','y'}, {'d','a','v','i','d'}}; char c[3][10]; int i; clrscr(); for (i=0;i<=2;i++) { printf("please input %d name:",i); scanf("%s",c[i]); /* also could be &c[i] */ } clrscr(); for (i=0;i<=2;i++) { printf("array a is:%s\n",a[i]); }

7 P. 7 Array ( 陣列 ) o 二維字串陣列的輸入及輸出及交換 #include void main() { char name[10][20]; int i; for (i=0;i<=5;i++) { printf("please input std name:"); scanf("%s",&name[i]); } clrscr(); for (i=0;i<=5;i++) printf("name is:%s\n",name[i]); } #include void main() { char name[2][20]={"aaa", "bbb"}; char temp[20]; clrscr(); strcpy(temp,name[0]); strcpy(name[0],name[1]); strcpy(name[1],temp); printf("name 0 is:%s\n",name[0]); printf("name 1 is:%s\n",name[1]); }

8 P. 8 Array ( 陣列 ) o 二維字串陣列的交換 ( 以函數完成 ) #include void swap(char strg[2][20], int m, int n); void main() { char name[2][20]={“John”,”Mary”}; swap(name,0,1); printf(“%s \t %s \n”, name[0],name[1]); } Void swap(char strg[2][20], int m, int n) { char temp[20]; strcpy(temp,strg[m]; strcpy(strg[m],strg[n]); strcpy(strg[n],temp);; }

9 P. 9 Array ( 陣列 ) o 連續輸入學生姓名, 轉成大寫, 排序, 並以二分搜尋法查詢 #include #define MAXNUM 80 #define MAXLEN 20 int INPUT(char A[MAXNUM][MAXLEN]); void ISORT(char A[MAXNUM][MAXLEN],int size); void SWAP(char A[MAXNUM][MAXLEN],int m,int n); void UPPER(char A[MAXLEN]); void BSEARCH(char A[MAXNUM][MAXLEN],int size,char Goal[]); void main() { char Name[MAXNUM][MAXLEN]; char Person[MAXLEN]; int Count; Count=INPUT(Name); ISORT(Name,Count); clrscr(); gotoxy(10,20); printf("Please input the person name:"); gets(Person); UPPER(Person); BSEARCH(Name,Count,Person); } int INPUT(char A[MAXNUM][MAXLEN]) { int number=0; clrscr(); while (1) { gets(A[number]); if (strlen(A[number])==0) break; else { UPPER(A[number]); number++; } return (number); }

10 P. 10 Array ( 陣列 ) void ISORT(char A[MAXNUM][MAXLEN],int size) { int i,j; for (i=0;i<size-1;i++) for (j=i+1;j<size;j++) if (strcmp(A[i],A[j])>0) SWAP(A,i,j); } void SWAP(char A[MAXNUM][MAXLEN],int m,int n) { char temp[MAXLEN]; strcpy(temp,A[m]); strcpy(A[m],A[n]); strcpy(A[n],temp); }

11 P. 11 Array ( 陣列 ) void BSEARCH(char A[MAXNUM][MAXLEN],int size,char Goal[]) { int first=0,last=size-1,mid,result; clrscr(); gotoxy(10,20); while (first<=last) { mid= float((last-first)/2) +first; result=strcmp(A[mid],Goal); if (result==0) { printf("Person has been found at %d position",mid); break; } else if (result>0) last=mid-1; else first = mid+1; } if (result !=0) printf("Person not found!\n"); } void UPPER(char A[]) { int l=strlen(A); int i; for (i=0;i<l;i++) A[i]=toupper(A[i]); }


Download ppt "P. 1 Array ( 陣列 ) o 一、二維數值陣列的宣告與給值 #include void main() { int a[3]; int b[3]={22,34,56}; for (int i=0;i<3;i++) scanf(“%d”, &a[i]); /* &a[i] also could."

Similar presentations


Ads by Google