viperchaos

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

以每行一个单词的形式打印其输入

#include <stdio.h>
#include <string.h>

#define IN  1   //不要在这里添加";",define 的错误一般比较隐蔽,编译器一般说第几行错,可是你愣是看不出哪里错,没想到问题处在宏定义这里
#define OUT 0

int main()
{
	int c, state = IN;
	int i = 0;
	
	while((c = getchar())!= '\n'){
		if( c == ' '|| c == '\n' || c == '\t'){
			state = OUT;
		}
		else if(state == OUT){
			state = IN; 
			putchar('\n');
			putchar(c);
                }       
		else if(state == IN){
			putchar(c);
		}	
	}
	return 0;
}

统计输入中相同长度单词的出现次数

#include <stdio.h>
#define  OUT 1
#define  IN  0

int main()
{
	int c, i = 0;
	int wordlen = 0;
	int lenchar[10];
	
	int STATE = IN;
	for(i = 0; i < 10; i++){
		lenchar[i] = 0;
	}
	while((c = getchar()) != '\n') {
		if(( c == ' ' || c == '\t') && (STATE == IN)){
			STATE = OUT;
			lenchar[wordlen]++;         //统计单词出现的个数
		}
		if( c == ' ' || c == '\t'){          //如果IF语句为真,下面的ELSE IF语句就不执行了
			STATE = OUT;		
		}
		else if(STATE == OUT){
			STATE = IN;
			wordlen = 1;
		}
		else if(STATE == IN){     //统计单词的长度
			wordlen++;		
		}				
	}
	lenchar[wordlen]++;     //处理最后一个单词长度
	for(i = 1; i < 10; i++){
		printf("%3.0d|%d\n", i, lenchar[i]);
	}
		
	return 0;
}

小结一下今天的编程:编译的时候总是出错,一般是变量名写错或者全角符号半角符号的问题,宏定义后面不要加分号,写之前最后有思路,想象程序的控制流程应该这样的,否则会很浪费时间,自己在哪里瞎改。计算机是不会骗你的,出错总是有原因的,写程序的时候脑子一定要清醒,这样效率高。看书不怎么顶用,程序一定要自己写,你会发现自己很多清楚的东西在写程序会很模糊。

posted on 2010-12-20 23:30  viperchaos  阅读(242)  评论(0)    收藏  举报