首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言两个程序 讨论解决办法

2012-05-09 
C语言两个程序 讨论复制到输出时,多个空格只输出一个空格的两个程序,大家讨论下哪个更好点,执行效率更快些

C语言两个程序 讨论
复制到输出时,多个空格只输出一个空格的两个程序,大家讨论下哪个更好点,执行效率更快些,为什么?
程序一:
#include<stdio.h>
#define YES 1
#define NO 0
int main()
{
int c;
int flag = YES;
while((c=getchar()) != EOF)
{
if(c==' ' && flag)
{
putchar(c);
flag = NO;
}
else if(c != ' ')
{
putchar(c);
flag = YES;
}
}
return 0;
}
/*************************************************************************/

程序二:
#include<stdio.h>
#define NONBLANK 'a'
int main()
{
int c;
int state = NONBLANK;
while((c=getchar(c)) != EOF)
{
if(c != ' ') //不是空格时
putchar(c);
if(c==' ') //是空格时
if(state != ' ')
putchar(c);
state = c;
}
return 0;
}

[解决办法]
第二个吧。逻辑上就少了几个步骤。
可以用时间测一下。。
clock_t start,end,time;
start=clock();
//要测试的内容
end=clock();
time=end-start;
printf("run time is %ldsec \n",step,time);
getchar();


[解决办法]
程序二是不是有问题啊

C/C++ code
程序二:#include<stdio.h>#define NONBLANK 'a'int main(){int c;int state = NONBLANK;while((c=getchar(c)) != EOF){if(c != ' ') //不是空格时{    putchar(c);    state = NONBLANK;}if(c==' ') //是空格时    if(state != ' ')        putchar(c);state = c;}return 0;} 

热点排行