在一个复杂的实现中,能够抽出部分实现用函数封装;在要用的地方调用。函数
#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++; } }
试着去写, 看别人怎么优化代码的。字符串