您的位置:首页 > 其它

THE C PROGRAMMING LANGUAGE 初学

2010-12-20 23:30 351 查看
以每行一个单词的形式打印其输入

#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;
}

小结一下今天的编程:编译的时候总是出错,一般是变量名写错或者全角符号半角符号的问题,宏定义后面不要加分号,写之前最后有思路,想象程序的控制流程应该这样的,否则会很浪费时间,自己在哪里瞎改。计算机是不会骗你的,出错总是有原因的,写程序的时候脑子一定要清醒,这样效率高。看书不怎么顶用,程序一定要自己写,你会发现自己很多清楚的东西在写程序会很模糊。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: