标题:求大神帮忙!最好解释一下 因为真心不懂!
只看楼主
limited
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-3-26
结帖率:66.67%
已结贴  问题点数:11 回复次数:10 
求大神帮忙!最好解释一下 因为真心不懂!
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一行字符,以回车结束,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。
输入输出示例:括号内是说明
输入
2   (repeat=2)
Let's  go   to room  209.
  Programming is fun
输出
count = 5     ("Let's  go   to room  209."中有5个单词)
count = 3     ("  Programming is fun"中有3个单词)


#include <stdio.h>
int main(void)
{
    char c;
    int count, word;
    int repeat, ri;

    scanf("%d", &repeat);
    getchar();
    for(ri = 1; ri <= repeat; ri++){
        c = getchar();
/*---------*/
        printf("count = %d\n", count);
    }
}
搜索更多相关主题的帖子: 单词 fun include repeat 正整数 
2013-04-20 13:07
ltianc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:56
专家分:128
注 册:2012-10-16
得分:2 
这个不难,耐心点就能搞定。

世界等我去改变。
2013-04-20 15:16
正人君子
Rank: 2
等 级:论坛游民
帖 子:10
专家分:28
注 册:2013-4-20
得分:2 

#include <stdio.h>
int main(void)
{
    char c;
    int count, word;
    int repeat, ri;

    scanf("%d", &repeat);
    getchar();
    for(ri = 1; ri <= repeat; ri++)
   {
      
        c = getchar();
        count=0;
        word=1;
for(;;)
{

     if(c=='\0')
         word=0;
     if(word==0&&c!='\0')
         count++;
     c=getchar();
     if(c=='\n')
       break;
}
        printf("count = %d\n", count);
    }
}
2013-04-20 19:40
正人君子
Rank: 2
等 级:论坛游民
帖 子:10
专家分:28
注 册:2013-4-20
得分:0 
没运行;你改一下我也是菜鸟
2013-04-20 19:41
尔东
Rank: 2
等 级:论坛游民
帖 子:14
专家分:44
注 册:2013-4-19
得分:2 
我觉得,
for(ri = 1; ri <= repeat; ri++)
    {
        
        c = getchar();
         count=0;
         word=1;
}
用来接收getchar()的 c 应该是字符数组 或者字符串
2013-04-20 21:28
尔东
Rank: 2
等 级:论坛游民
帖 子:14
专家分:44
注 册:2013-4-19
得分:0 
还有,少一个return 0;
2013-04-20 21:33
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
得分:2 
怎么说呢,这道题还是自己做的好。我碰到好多这样的题了。
首先 据条件空格可以有多个。
所以 循环中  if(s[i]==' '&&s[i+1]==' '||i==0&&a[i]==' ') continue;
if(count==0&&a[i]>='A'&&a[i]<='z')count++
还有let's是两个单词
所以 if(s[i]==''') count++;
最后
if(s[i]==' '&&s[i]>='A'&&s[i]<='z')
count++;
最后靠自己了。

有问题一起探讨,一起进步。
2013-04-20 22:47
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
得分:2 
#include<stdio.h>
int main(void)
{
    char c;
    int i, m, n;  // n为循环的次数! (repeat)
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        m=1;      
        c=getchar();   
       while(1)
       {
          c=getchar();  //寻找字符串
          if(c==' ')
          ++m;
          else
          if(c=='\n')
          break;      
       }
       printf("%d\n",m);  // 输出word 的数量!
    }
    return 0;
}
你试试!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-04-20 22:57
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
得分:0 
以下是引用正人君子在2013-4-20 19:40:54的发言:


#include
int main(void)
{
    char c;
    int count, word;
    int repeat, ri;

    scanf("%d", &repeat);
    getchar();
    for(ri = 1; ri <= repeat; ri++)
   {
      
        c = getchar();
        count=0;
        word=1;
for(;;)
{

     if(c=='\0')
         word=0;
     if(word==0&&c!='\0')
         count++;
     c=getchar();
     if(c=='\n')
       break;
}
        printf("count = %d\n", count);
    }
}
你的代码好像有问题,不能输出结果!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-04-20 22:59
楓的记忆
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2013-4-13
得分:2 
觉得应该用 getche()函数
2013-04-20 23:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-404961-1-1.html




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

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