| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 379 人关注过本帖, 1 人收藏
标题:求助 怎么跳不出循环??
只看楼主 加入收藏
wczl520
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-1-14
结帖率:100%
收藏(1)
已结贴  问题点数:5 回复次数:7 
求助 怎么跳不出循环??
#include <stdio.h>
#include <string.h>

int main()
{
    char a[100],c;
    int i = 0,sum = 0;

    gets(a);

    do {
         while ( (c = a[i]) == ' ') i++ ;
         if (c != '\0') sum++ ;
        while ( (c = a[i]) != ' ' && c != '\0 ') i++;
    }while (c != '\n') ;
        
        printf ("单词个数为%d",sum);
        return 0;
}
高手帮忙看看吧,为什么最后我的编译器跟踪显示的是c = ‘?’啊!!!!
搜索更多相关主题的帖子: return 编译器 
2011-04-05 16:48
canxden
Rank: 3Rank: 3
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
注 册:2011-3-18
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

int main()
{
    char a[100],c;
    int i = 0,sum = 0;

    gets(a);

    do {
         while ( (c = a[i]) == ' ') i++ ;
         if (c != '\0') sum++ ;
        while ( (c = a[i]) != ' ' && c != '\0 ') i++;
    }while (c !== '\n') ; /*这里等号是两个=的*/
        
        printf ("单词个数为%d",sum);
        return 0;
}

一个人能有多坚强,太安静,就成了孤单。
2011-04-05 17:15
canxden
Rank: 3Rank: 3
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
注 册:2011-3-18
收藏
得分:0 
我也是新手 看不懂你要写什么#include <string.h>都没学 - -

一个人能有多坚强,太安静,就成了孤单。
2011-04-05 17:15
迷糊战神no1
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:129
注 册:2010-11-29
收藏
得分:0 
‘=’与‘==’有区别的   ,,,一个是赋值表达式       一个是语句,,,,#include<string.h>是c、c++标准库的东西,,,要用到库的函数当然要有了   
2011-04-05 17:27
chenwei435
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:322
专家分:1611
注 册:2010-11-28
收藏
得分:0 
回复 楼主 wczl520
你那个判断是否到'\n'肯定是不对的,gets函数会处理掉'\n'的。
程序代码:
#include <stdio.h>
int main()
{
    char a[100],c;
    int i=0,sum=0;
    gets(a);
    while((c=a[i])!='\0')    /*判断是否到字符串尾*/
    {
        i+=1;
        if(c!=' ')    /*如果不是空格就计数*/
            sum+=1;            
    }
    printf("单词个数为%d",sum);
    return 0;
}
2011-04-05 18:16
wczl520
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-1-14
收藏
得分:0 
我刚开始的时候也是用的‘\0’但是也是一样的 ,结果c的值后面就变成是‘?’了,而不是结束符‘\0’
2011-04-05 19:36
hnuhsg1226
Rank: 9Rank: 9Rank: 9
来 自:中国
等 级:蜘蛛侠
威 望:2
帖 子:314
专家分:1314
注 册:2011-3-27
收藏
得分:5 
#include <stdio.h>
#include <ctype.h>

int main()
{
    char a[100];
    int i=1,sum=0,j=0;

    fgets(a,100,stdin);
    if(isalpha(a[0]))  //isalpha()判断是否为字母,字母返回非0值,非字母返回0
    {
        ++sum;
    }
    do{
        if(a[j]==' ' && isalpha(a[i]))
            sum++;
        j++;
        i++;
    }while (a[i] != '\n');
        
    printf ("单词个数为%d\n",sum);
    return 0;
}

我的地盘
2011-04-05 22:10
wczl520
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-1-14
收藏
得分:0 
谢谢各位!!!
  楼上的我慢慢分析一下
 呵呵!!
  其实我是想知道为什么,我用gets输入数以后,在字符串结束时,不是以‘\0’结尾。
2011-04-05 22:25
快速回复:求助 怎么跳不出循环??
数据加载中...
 
   



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

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