| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1539 人关注过本帖
标题:只是课后题,可是错在哪了?
只看楼主 加入收藏
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
为什么不能用 scanf ?
2010-02-12 15:48
Justfeeling
Rank: 2
等 级:论坛游民
帖 子:26
专家分:47
注 册:2010-2-15
收藏
得分:0 
因为用scanf的话就必须用%s,但这样会让空格和回车,容易造成错误...
2010-02-15 20:37
Justfeeling
Rank: 2
等 级:论坛游民
帖 子:26
专家分:47
注 册:2010-2-15
收藏
得分:0 
gets没学过,用getchar的话要用一个循环
2010-02-15 20:43
Justfeeling
Rank: 2
等 级:论坛游民
帖 子:26
专家分:47
注 册:2010-2-15
收藏
得分:0 
我刚调试了一下,不能用for循环,因为你根本就不知道那个字符数组有多长!!改用while(c[i]!='\0'){...;i++;}
2010-02-15 21:37
Justfeeling
Rank: 2
等 级:论坛游民
帖 子:26
专家分:47
注 册:2010-2-15
收藏
得分:0 
正确的是:
#include<stdio.h>
main()
{
    char c[100];
    int i=0, alphabet=0, number=0, space=0, others=0;
    printf("Please input a string less than 100 words:");
    scanf("%s",c);
    while(c[i++]!='\0')  //改用标志循环    {
        if (c[i]==32)
            space++;
         else if (c[i]>=48 && c[i]<=57)
            number++;
         else if(c[i]>=65 && c[i]<=90  ||  c[i]>=97 && c[i]<=122)
            alphabet++;
        else others++;
    }
    printf("The string has %d alphabets, %d numbers, %d spaces and %d other character.\n", alphabet,number,space,others);
}


[ 本帖最后由 Justfeeling 于 2010-2-16 00:08 编辑 ]
2010-02-15 21:55
韦春敢
Rank: 3Rank: 3
来 自:广西
等 级:论坛游侠
帖 子:91
专家分:142
注 册:2010-1-25
收藏
得分:0 
这个题目你没有到达要求。。“一行字符。”
main()
{
    char c[100];
    printf("Please input a string less than 100 words:");
    scanf("%s",c);
    int i, alphabet=0, number=0, space=0, others=0;
    for ( i=0; i<100; i++ )
    {
        if (c[i]==32)
            space++;
         else if (c[i]>=48 && c[i]<=57)
            number++;
         else if(c[i]>=65 && c[i]<=90  ||  c[i]>=97 && c[i]<=122)
            alphabet++;
        else if (c[i]==10)/*判断是否是ENTER键*/
      break;
   else others++;
    }
    printf("The string has %d alphabets, %d numbers, %d aces and %d other character.\n", alphabet,number,space,others);
}

哈哈
2010-02-15 23:06
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
就用 getchar 循环就行,我觉得。为什么都想一次读一堆呢?
2010-02-15 23:15
悠哉悠哉
Rank: 2
等 级:论坛游民
帖 子:19
专家分:15
注 册:2010-2-7
收藏
得分:0 
收获…
2010-02-21 20:41
快速回复:只是课后题,可是错在哪了?
数据加载中...
 
   



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

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