40 likes | 198 Views
副程式 ( Subroutine ). 無傳回值 , 無參數的副程式. void pabc() { printf("abc<br>"); } void pdef() { printf("def<br>"); }. #include <stdio.h> #include <conio.h> void pabc(); void pdef(); void main() { int i,n; long sum=0; clrscr(); pabc(); pdef(); }. 無傳回值 , 有參數的副程式. #include <stdio.h>
E N D
副程式 (Subroutine) • 無傳回值,無參數的副程式 void pabc() { printf("abc\n"); } void pdef() { printf("def\n"); } #include <stdio.h> #include <conio.h> void pabc(); void pdef(); void main() { int i,n; long sum=0; clrscr(); pabc(); pdef(); }
無傳回值,有參數的副程式 #include <stdio.h> #include <conio.h> void print_add(int a, int b); void main() { clrscr(); print_add(5,7); } void print_add(int a,int b) { printf(“sum is:”,a+b); } #include <stdio.h> #include <conio.h> void sub1(int a, int b); void main() { int c=5;d=9; clrscr(); sub1(c,d); } void sub1(int a,int b) { a++; b++; }
/* find 1!+2! + ... +5!=153 */ /* not using recursive */ #include <stdio.h> #include <conio.h> unsigned int fact(int n); void main() { unsigned int sum=0; int i; for (i=1;i<=5;i++) sum+=fact(i); clrscr(); printf("1!+2!+...+5!=%d",sum); } unsigned int fact(int n) { unsigned int product=1; int times; for (times=1;times<=n;times++) product*=times; return(product); } • 有傳回值,有參數的副程式 #include <stdio.h> #include <conio.h> int sum(int a, int b); void main() { int k; clrscr(); k=sum(5,7)+1; } int sum(int a, int b) { return(a+b); }
遞迴 #include <stdio.h> #include <conio.h> unsigned int fact(int n); /* declare function */ void main() { clrscr(); int k; char pause; printf("please input a integer:"); scanf("%d",&k); printf("%d!=",k); printf("%u\n",fact(k)); printf("press any key to continue..."); pause=getche(); } unsigned int fact(int n) { if (n==1) { printf("1="); return(1); } else { printf("%d*",n); return(n*fact(n-1)); } }