| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
雷速体育发帖软件开发QQ118000023C语言培训|一对一辅导|零基础学编程LightningChart 快速先进的.Net图表控件
共有 181 人关注过本帖
标题:输入一行字符 判断其中单词数和空格数求教
只看楼主 收藏
唐熊熊熊
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-4-15
  问题点数:0  回复次数:2   
输入一行字符 判断其中单词数和空格数求教
#include "stdio.h"
main()
{
    char a[200];
    char ch;
    int x,y,i,l=0;
    x=0;
    y=0;
    printf("请输入字符串a:");
    gets(a);
    printf("输出的字符a为:");
    puts(a);
    for(i=0;(ch=a[i])!='\0';i++)
    {
        if(ch==' ')
        {
         x=0;
         l++;
        }
        else if(x==0)
        {
        x=1;
        y++;
        }
    }

    printf("字符串a共有%d单词!\n",y);
    printf("字符串共有%d个空格\n",l);
}
请教一下这个程序中的X是干什么用的x=1 x=0有什么用
2018-04-15 13:15
ab1412
Rank: 6Rank: 6
来 自:M78星球
等 级:侠之大者
威 望:3
帖 子:88
专家分:453
注 册:2018-3-15
  得分:0 
你统计的是单词数而非字符数,但是你只能一个字符一个字符输入,所以需要一个判断单词的控制变量x。当x==0的时候,你输入一个字符,就是一个单词的首字符,它的单词数量y就加1,此时你的x==1,除非当你再次输入空格后,它才会继续统计你单词的数量。也就是说,你输入空格后的第一个字符会被认为是一个单词,之后x变为1,不再统计字符,直到你再次输入字符为止。所以这个程序的原理就是你输入空格后的第一个字符当作一个单词,为了防止之后的字符对它产生干扰,让x==1,不再统计,直到你下一个空格来为止。emmm我的语文确实捉急,说不太清楚,随便看看把....

printf("萌新一枚,请多指教");
2018-04-15 13:49
xzjxu
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2018-4-15
  得分:0 
x==0意味着空格开始,执行y++,x再变成1以便在遇到下一个空格之前不再统计y
2018-04-17 13:05







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043205 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved