| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1413 人关注过本帖
标题:编写一个C语言程序 不知道对不对
只看楼主 加入收藏
lyugen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:13 
编写一个C语言程序 不知道对不对
编写一个C语言程序,要求实现的功能为:从键盘上输入一行带有英文字母的任意字符串,假定该字符串的长度不超过50,试统计出该串中所包含的每一种字母a、b、c、d的个数(字母大小写等效),并分行依次输出,每行的输出格式为“字母:个数”,如假定字母a的个数为3,则输出格式为“a: 3”。提示:请在for循环内使用switch语句分别进行字母个数的统计。在上述项目内建立一个能够实现上述功能的、名称为“main.c”的程序文件,并输入、编译、连接和运行此C语言程序文件。
#include"stdio.h"
int main(int argc,char* argv[])
{
 char c;
 int letters=0,space=0,digit=0,others=0;
 while((c=getchar())!='\n')
 {
  if(c>='a'&&c<='z'||c>='A'&&c<='Z') letters++;
  else if(c==' ') space++;
  else if(c>='0'&&c<='9') digit++;
  else others++;
 }

 
 printf("英文%d,数字%d,空格%d,其他%d",letters,digit,space,others);
    return 0;}


这么写对吗? 不对的话 请告诉该怎么写
搜索更多相关主题的帖子: 英文字母 include C语言 字符串 
2012-11-10 23:15
菜鸟一支
Rank: 6Rank: 6
来 自:何美杭
等 级:侠之大者
威 望:1
帖 子:121
专家分:456
注 册:2012-10-10
收藏
得分:3 
楼主,你这个不对,不是程序不对,是不符合题目的统计要求。
我写了一个不用switch的程序,可以实现要求的功能,你可以看一看。
如果要用switch的话,要写很长。。。(因为每一个字母要测试52次)当然,你如果一定要用switch的话,我也可以写给你,
#include"stdio.h"
int main(int argc,char* argv[])
{
char c;
int i,a[26]={0};
while((c=getchar())!='\n')
{    for(i=0;i<=25;i++)
{    if(c=='a'+i||c=='A'+i)
        a[i]++;}
}
for(i=0;i<=25;i++)
printf("%c:%d\n",'a'+i,a[i]);
    return 0;}



小弟何美杭,所发表的都仅代表个人观点,欢迎批评指正。
2012-11-11 02:22
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:3 
楼主,看看这个,这个符合题意,仅供参考!
/*统计a/A,b/B,c/C.d/D以及其他字符的个数*/
#include<stdio.h>
int main()
{
        int a=0,b=0,c=0,d=0,e=0;
        char ch;
        printf("请输入一行任意字符串:");
        for(;ch!='\n';)
        {
                ch=getchar();
                if(ch>='A'&&ch<='D')//大写转小写
                ch += 'a'-'A';
                switch(ch)
                {
                        case  'a': a++; break;//统计个数
                        case  'b': b++; break;
                        case  'c': c++; break;
                        case  'd': d++; break;
                        case '\n':      break;
                        default  : e++;
                }
        }
        printf("a/A:%d\n",a);//打印
        printf("b/B:%d\n",b);
        printf("c/C:%d\n",c);
        printf("d/D:%d\n",d);
        printf("其他:%d\n",e);
        return 0;
}

程序运行结果如下:

请输入一行任意字符串:aaAAbbBB ccCCddDD 1234+-*/      
a/A:4
b/B:4
c/C:4
d/D:4
其他:10


[ 本帖最后由 小小战士 于 2012-11-11 04:39 编辑 ]

小小战士,战士中的战斗机!
2012-11-11 04:35
lyugen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-10
收藏
得分:0 
在上述项目内建立一个能够实现上述功能的、名称为“main.c”的程序文件,并输入、编译、连接和运行此C语言程序文件。是什么意思呢 ?这句不明白
2012-11-11 14:03
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
新建立一个文件 命名为MAIN.C  把那些代码敲进去
然后编译 链接 成一个可执行文件
运行这个。exe文件  能得到正确的结果

DO IT YOURSELF !
2012-11-11 14:30
lyugen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-10
收藏
得分:0 
完全迷糊了     然后编译 链接 成一个可执行文件 运行这个。exe文件  能得到正确的结果。就不知道该怎么弄了
2012-11-11 20:19
lyugen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-10
收藏
得分:0 
书也看了  还是不明白
2012-11-11 20:19
lyugen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-10
收藏
得分:0 
测试完 就有一个EXE文件和OBJ文件  一再EXE上输入完一按回车就没了
2012-11-11 20:24
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:0 
呵呵,在程序最后return之前加一句system("pause");使窗口停留,OK!

小小战士,战士中的战斗机!
2012-11-11 20:31
lyugen
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-10
收藏
得分:0 
谢谢
2012-11-11 21:27
快速回复:编写一个C语言程序 不知道对不对
数据加载中...
 
   



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

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