最近发觉脑袋越来越不好使,种种原因、种种借口:没休息好,年龄大了,长期不学习...
俗话说的好,刀不磨要生锈、人不学要落后、脑不用要变旧。大脑也是需要靠养的,以用带养,不断激活那些长久不用的区域,才能保持活力避免萎缩退化。不管何种因素,如今都到了必须多用脑的时候。
怎么用呢?IT民工还是离不开IT的事情,突发灵感,闲暇时间还是多研究一下底层的东西吧。10多年前哥学习C语言的时候,成绩可是杠杠的,后面东一脚西一脚的蹉跎岁月,渐渐荒废这些基础知识。就从这儿开始吧。于是有了这个计划,翻开经典的C程序设计语言(特别说明不是谭老师那本),从头开始,看看书,做做习题,按书中的学习路径,循序渐进,跟着书本用基础知识来一步一步的开发大脑。
废话不说,今天上一个练习题“编写函数reverse ( s ),把字符串s颠倒过来。用它编写一个程序,一次把一个输入行字符串颠倒过来。”,为避免使用书上还没讲的库函数,咱把reverse有所改动,上代码:
#include <stdio.h> /* 将一个输入行颠倒过来 */ #define MAXLENGTH 1000 //输入行允许的最大长度 void reverse(char s[],int lineLength); int getLine(char line[], int lim); main(){ char line[MAXLENGTH]; int len; len = 0; while((len = getLine(line,MAXLENGTH)) > 0){ reverse(line,len); printf("%s",line); } return 0; } int getLine(char line[],int lim){ int i,c; for(i = 0; i < (lim -1) && (c = getchar()) != EOF && c != ‘\n‘; ++i){ line[i] = c; } if(c == ‘\n‘){ line[i] = c; ++i; } line[i] = ‘\0‘; return i; } void reverse(char s[],int lineLength){ int i,j,c; j = lineLength - 1; if(s[j] == ‘\n‘) --j; for(i = 0; i < j ; ++i,--j){ c = s[i]; s[i] = s[j]; s[j] = c; } }
时间: 2024-10-23 21:01:31