引子1-输出信息新办法
#include <stdio.h> void printstars(); void printmessage(); int main() { printstars(); printmessage(); printstars(); return 0; } void printstars() { printf("*******************\n"); } void printmessage() { printf("Hello, world.\n"); }
引子2-输出星号图
#include <stdio.h> int main() { int i,j; for(i=1; i<=6; ++i) { //第i行输出2*i-1个星号 for(j=1; j<=2*i-1; ++j) { printf("*"); } printf("\n"); } return 0; }
改造为
#include <stdio.h> void printstars(int m) { int j; for (j=1; j<=m; ++j) printf("*"); return; } int main() { int i; for(i=1; i<=6; ++i) { printstars(2*i-1); printf("\n"); } return 0; }
也可以
#include <stdio.h> void printstars(int m); int main() { int i; for(i=1; i<=6; ++i) { printstars(2*i-1); printf("\n"); } return 0; } void printstars(int m) { int j; for (j=1; j<=m; ++j) printf("*"); return; }
函数的参数,让处理更灵活
#include <stdio.h> void printchs(int m, char ch) //定义能输出m个符号ch的函数 { int j; for (j=1; j<=m; ++j) putchar(ch); } int main() { int i; for(i=1; i<=6; ++i) { printchs(6-i,' '); printchs(2*i-1,'*') ; printf("\n"); } return 0; }
引子3-最大公约数和最小公倍数
#include <stdio.h> int gcd(int n1, int n2); int lcm(int n1, int n2); int main() { int num1,num2; int iGcd, iLcm; //最大公约数和最小公倍数 printf("please input two numbers:"); scanf("%d%d",&num1,&num2); iGcd=gcd(num1, num2); iLcm=lcm(num1,num2); printf("the gcd is: %d\n",iGcd); printf("the lcm is: %d\n",iLcm); return 0; } int gcd(int n1, int n2) { int r; while(n2!=0)/*利用辗除法,直到n2为0为止*/ { r=n1%n2; n1=n2; n2=r; } return n1; } int lcm(int n1, int n2) { return n1*n2*gcd(n1, n2); };