| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 16621 人关注过本帖
标题:有一篇文章,共有3行文字,每行有80个字符,要求分别统计出其中英文大写字母 ...
只看楼主 加入收藏
fhyzjjh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-5-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
有一篇文章,共有3行文字,每行有80个字符,要求分别统计出其中英文大写字母、英文小写字母、数字、空格和其它字符的个数。
#include  <stdio.h>

main()
{
 char str[3][81];
 int upper,lower,digit,space,other;
 int i,j;
 upper=0;lower=0;digit=0;space=0;other=0;
 
 printf ("请输入三行字符:\n");
 
 for (i=0;i<3;i++)
 {
     for (j=0;str[i][j]=gerchar()!='\n';j++)
     {
         if (str[i][j]>='A' && str[i][j]<='Z')
             upper++;
         else if (str[i][j]>='a' && str[i][j]<='z')
             lower++;
         else if (str[i][j]>='0' && str[i][j]<='9')
             digit++;
         else if (str[i][j]=' ')
             space++;
         else
             other++;
     }
 }
 printf("大写字母:%d 个\n",upper);
 printf("小写字母:%d 个\n",lower);
 printf("数  字:%d 个\n",digit);
 printf("空  格:%d 个\n",space);
 printf("其  它:%d 个\n",other);
}
这个程序运行有一个错误,我没发现。请大神帮帮忙!!!
搜索更多相关主题的帖子: 英文 include 文章 统计 字母 
2017-05-11 09:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54066
注 册:2011-1-18
收藏
得分:7 
“程序运行有一个错误” ------ 编译都没成功,怎么可能运行呢?
“我没发现” ------ error C3861: 'gerchar': identifier not found 这句洋文,不会英语的人也能猜得出肯定是gerchar有问题

逻辑错误就不说了,比如 != 优先级高于 =
比如 = 是赋值号,== 才是比较符号
2017-05-11 09:25
fhyzjjh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-5-10
收藏
得分:0 
#include  <stdio.h>

main()
{
 char str[3][81];
 int upper,lower,digit,space,other;
 int i,j;
 upper=0;lower=0;digit=0;space=0;other=0;
 
 printf ("请输入三行字符:\n");
 
 for (i=0;i<3;i++)
 {
     for (j=0;(str[i][j]=getchar())!='\n';j++)
     {
         if (str[i][j]>='A' && str[i][j]<='Z')
             upper++;
         else if (str[i][j]>='a' && str[i][j]<='z')
             lower++;
         else if (str[i][j]>='0' && str[i][j]<='9')
             digit++;
         else if (str[i][j]=' ')
             space++;
         else
             other++;
     }
 }
 printf("大写字母:%d 个\n",upper);
 printf("小写字母:%d 个\n",lower);
 printf("数  字:%d 个\n",digit);
 printf("空  格:%d 个\n",space);
 printf("其  它:%d 个\n",other);
}

非常谢谢rjsp
2017-05-12 10:46
fhyzjjh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-5-10
收藏
得分:0 
回复 2楼 rjsp
我改了之后运行,统计出的其它字符other的个数总是0个。。。为什么,输入没有问题

[此贴子已经被作者于2017-5-12 10:51编辑过]

2017-05-12 10:50
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
else if (str[i][j]=' ')

DO IT YOURSELF !
2017-05-12 10:51
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:7 
就一个统计输入的程序,为什么会需要二维数组?题目又不需要你重新输入这些三个字符串。

3行,等于3个\n,当遇到\n的时候,计数器自减不就好了。

[此贴子已经被作者于2017-5-12 10:53编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-12 10:51
fhyzjjh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-5-10
收藏
得分:0 
回复 6楼 renkejun1942
有一篇文章,共有3行文字,每行有80个字符,要求分别统计出其中英文大写字母、英文小写字母、数字、空格和其它字符的个数。
#include  <stdio.h>

main()
{
 char str[3][81];
 int upper,lower,digit,space,other;
 int i,j;
 upper=0;lower=0;digit=0;space=0;other=0;
 
 printf ("请输入三行字符:\n");

 for (i=0;i<3;i++)
     gets(str[i]);

 for (i=0;i<3;i++)
 {
     for (j=0;j<80;j++)
     {
         if (str[i][j]>='A' && str[i][j]<='Z')
             upper++;
         else if (str[i][j]>='a' && str[i][j]<='z')
             lower++;
         else if (str[i][j]>='0' && str[i][j]<='9')
             digit++;
         else if (str[i][j]=' ')
             space++;
         else
             other++;
     }
 }
 printf("大写字母:%d 个\n",upper);
 printf("小写字母:%d 个\n",lower);
 printf("数  字:%d 个\n",digit);
 printf("空  格:%d 个\n",space);
 printf("其  它:%d 个\n",other);
}

C语言书上把此题列在字符数组这块内容中,所以我改了下程序。

[此贴子已经被作者于2017-5-12 11:03编辑过]

2017-05-12 11:02
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
5楼贴的你都没看啊

DO IT YOURSELF !
2017-05-12 11:04
fhyzjjh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-5-10
收藏
得分:0 
#include  <stdio.h>

main()
{
 char str[3][81];
 int upper,lower,digit,space,other;
 int i,j;
 upper=0;lower=0;digit=0;space=0;other=0;
 
 printf ("请输入三行字符:\n");

 for (i=0;i<3;i++)
     gets(str[i]);

 for (i=0;i<3;i++)
 {
     for (j=0;j<80;j++)
     {
         if (str[i][j]>='A' && str[i][j]<='Z')
             upper++;
         else if (str[i][j]>='a' && str[i][j]<='z')
             lower++;
         else if (str[i][j]>='0' && str[i][j]<='9')
             digit++;
         else if (str[i][j]==' ')
             space++;
         else
             other++;
     }
 }
 printf("大写字母:%d 个\n",upper);
 printf("小写字母:%d 个\n",lower);
 printf("数  字:%d 个\n",digit);
 printf("空  格:%d 个\n",space);
 printf("其  它:%d 个\n",other);
}
2017-05-12 13:24
fhyzjjh
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-5-10
收藏
得分:0 
回复 5楼 wp231957
谢谢
2017-05-12 13:24
快速回复:有一篇文章,共有3行文字,每行有80个字符,要求分别统计出其中英文大 ...
数据加载中...
 
   



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

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