| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 299 人关注过本帖
标题:新手入坑 求路过大佬指点while循环
只看楼主 加入收藏
axiangyo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-5-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
新手入坑 求路过大佬指点while循环
#include<stdio.h>
void func();
void main()
{
    func();
}
void  func(){
int a, b, c, d,e;//   a代表是小写字母  b代表大写字母   c代表数字  d代表其他字符   e代表scii码值小于100的字符
char ch;
a = b = c = d = e = 0;
printf("请输入字符串:");
while ((ch = getchar ()) != '\n')
{
     
        if (ch>='a' && ch <= 'z' )
               a++;
        else if (ch>='A' && ch <='Z')
               b++;
        else if (ch>='0' && ch <='9')
               c++;
        else if (ch>='\0' && ch <='\d')
               e++;
        else
               d++;
      
}
        printf ("小写字母和数字总数为:%d\n", b+c);
        printf ("大写字母的个数为:%d\n", b);
        printf ("其他字符和数字总数为:%d\n", c+d);
        printf("ascii码值小于100的总数有:%d\n", e);
        
        
}
前三个条件都可满足 到第四个条件时我发现了不足,因为前三个条件都互相不影响,而第四个要求会被其他占用一些字符导致输出不完整,求路过的大佬可以指点指点
输入一串字符
条件一:输出一为小写字母和数字的总数和
条件二:输出二为大写字母的输出和
条件三:输出三为其他字符和数字总和
条件四:输入字符中ascii码值小于100的输出和
求怎么做才可以不影响前三个条件下完成第四个 上面代码有误希望指点
搜索更多相关主题的帖子: 代表 输出 字符 条件 字母 
2021-05-07 17:15
zbjzbj
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:51
帖 子:614
专家分:2990
注 册:2011-4-22
收藏
得分:0 
没弄清楚题目意图

[此贴子已经被作者于2021-5-7 18:02编辑过]

2021-05-07 17:48
axiangyo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-5-7
收藏
得分:0 
回复 2楼 zbjzbj
输入一段字符(其中包括大小写字母.数字和其他字符),输出1:小写字母和数字总数有多少个;输出2:大写字母有多少个;输出3:其他字符和数字总数有多少个;输出4:ascii码值小于100的有多少个     这个是原题目 上面是我编的代码  我用while循环一直满足不了输出4
2021-05-07 18:10
夏天q
Rank: 4
来 自:七月
等 级:业余侠客
威 望:5
帖 子:33
专家分:227
注 册:2021-4-4
收藏
得分:20 
把第四个条件的检测放到最前面单独一个if 示例:
程序代码:
#include <stdio.h>
#include <ctype.h>
int main(void) {
    int a, b, c, d, e;//   a代表是小写字母  b代表大写字母   c代表数字  d代表其他字符   e代表scii码值小于100的字符
    a = b = c = d = e = 0;
    int ch;
    printf("请输入字符串\n");
    while ((ch = getchar ()) != '\n') {
        if(ch < 100)
            ++e;
        if(islower(ch))
            ++a;
        else if(isupper(ch))
            ++b;
        else if(isdigit(ch))
            ++c;
        else
            ++d;
    }
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    printf("c=%d\n",c);
    printf("d=%d\n",d);
    printf("e=%d\n",e);
//          printf ("小写字母和数字总数为:%d\n", b+c);
//        printf ("大写字母的个数为:%d\n", b);
//        printf ("其他字符和数字总数为:%d\n", c+d);
//        printf("ascii码值小于100的总数有:%d\n", e);
    return 0;
}
收到的鲜花
  • axiangyo2021-05-08 12:04 送鲜花  1朵  
2021-05-07 18:49
axiangyo
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-5-7
收藏
得分:0 
回复 4楼 夏天q
收到 谢谢你提供的参考让我解决了问题
2021-05-08 12:02
快速回复:新手入坑 求路过大佬指点while循环
数据加载中...
 
   



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

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