在一個複雜的實現中,能夠抽出部分實現用函數封裝;在要用的地方調用。函數
#include <stdio.h> float celsius(float fahr) { return ((5.0/9.0)*(fahr-32.0)); } main() { float fahr; int lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; while (fahr<=upper) { printf("%3.0f %.1f\n", fahr, celsius(fahr)); fahr += step; } }
打印知道的數,調用轉換函數,思路清晰。優化
要寫一個程序先把大概的過程構思出來,聲明變量,函數,code
#include <stdio.h> #define MAXLINE 1000//輸入最長行 int getline(char line[], int maxline);//輸入行 void copy(char to[], char from[]);//保存最長行 main() { int len; int max; char line[MAXLINE]; char longest[MAXLINE]; max = 0; while ((len =getline(line, MAXLINE)) > 0) {//行長大於0 printf("%d, %s\n", len, line); if(len>max)//比較行長 { max = len; copy(longest, line); } } if(max>0)//優化 printf("%s\n", longest); return 0; } int getline(char s[], int lim) { int c, i, j; j = 0; for(i=0;(c=getchar()) != EOF && c != '\n'; i++) { if(i<lim-2)//優化 { s[j] = c; j++; } } if(c == '\n') { s[j] = c; j++; i++; } s[j] = '\0';//字符串 return i; } void copy(char to[], char from[]) { int i; i = 0; while((to[i]=from[i]) != '\0')//to[i]的值是否爲'\n' { i++; } }
試着去寫, 看別人怎麼優化代碼的。字符串