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

浙公网安备 33010602011771号