鱼C论坛

 找回密码
 立即注册
查看: 801|回复: 6

[已解决]求输入一句英文,统计字母,数字,其他符号个数?数字部分如何输出!

[复制链接]
发表于 2021-11-27 20:45:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
main()
{
        int i=0,j=0,x=0;
        char ch;
        while((ch=getchar())!='\n')
        {
                scanf("%c",&ch);
                if(ch>'A'&& ch<'z')
                        i++;
                else  if(ch>0 && ch<9)

                        j++;
                else
                        x++;
        }
        printf("字母数=%d\n数字数=%d\n其他符号数=%d\n",i,j,x);
}
最佳答案
2021-11-27 21:23:10
#include<stdio.h>
main()
{
        int i=0,j=0,x=0;
        char ch;
        while((ch=getchar())!='\n')
        {
                if((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) i ++ ;
                else  if(ch >= '0' && ch <= '9') j ++                         ;
                else  x ++                                                    ;
        }
        printf("字母数 = %d\n 数字数 = %d\n 其他符号数 = %d\n" , i , j , x)   ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-27 20:56:15 | 显示全部楼层
本帖最后由 番杰 于 2021-11-28 09:51 编辑
#include<stdio.h>
int main(void)
{
        int i=0,j=0,x=0;
        char ch;
        while((ch=getchar())!='\n')
        {
                if((ch >= 'A'&& ch <= 'Z') || (ch >= 'a'&& ch <= 'z'))
                        i++;
                else  if(ch>='0' && ch<='9')//应该是和字符‘0’和‘9’进行比较,即它们对应的ASCII码值,而不是数值
                        j++;
                else
                        x++;
        }
        printf("字母数=%d\n数字数=%d\n其他符号数=%d\n",i,j,x);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-27 21:18:40 | 显示全部楼层

不单单输出数字数不出,连字母,其他符号,结果也会错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-27 21:23:10 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>
main()
{
        int i=0,j=0,x=0;
        char ch;
        while((ch=getchar())!='\n')
        {
                if((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) i ++ ;
                else  if(ch >= '0' && ch <= '9') j ++                         ;
                else  x ++                                                    ;
        }
        printf("字母数 = %d\n 数字数 = %d\n 其他符号数 = %d\n" , i , j , x)   ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-27 21:52:14 | 显示全部楼层
本帖最后由 小黄练编程 于 2021-11-27 21:54 编辑


我刚改了和这差不多,scanf删了,0和9都加了  ’   ‘   还是错,为什么一用你的就对了,我瞅半天了,也没发现还改了哪里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-27 21:53:46 | 显示全部楼层
小黄练编程 发表于 2021-11-27 21:52
我刚改了和这差不多,scanf删了,0和9都加了  ’   ‘   还是错,为什么你、一用你的就对了,我瞅半天 ...

还有字母也改了,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-28 09:17:08 | 显示全部楼层
小黄练编程 发表于 2021-11-27 21:18
不单单输出数字数不出,连字母,其他符号,结果也会错

啊这,没看到前面的还有一个scanf();
去掉这个就行;
因为你while中:getchar()已经实现键盘输入的功能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 03:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表