C语言编程题:从键盘输入一串字符,统计其中的数字与字母个数并输出

#include<stdio.h>intmain(){charst(char);charc[20];gets(c);st(c);}intst(char){inti,k=0... #include <stdio.h>
int main()
{
char st(char );
char c[20];
gets(c);
st(c);
}
int st(char )
{
int i, k=0, o=0, n=0;
for(i=0; i<20; i++)
{
if((c[i]>'a' && c[i]<'z') || (c[i]>'A' && c[i]<'Z'))
k++;
else if(c[i]>'0' && c[i]<'9')
n++;
else
o++;
}
printf("数字有%d个\n字母有%d个\n字符有%d个", k, n, o);
}
程序的目的 写在题目上了,这个是自己编的,麻烦帮忙看下 不正确的地方 最后在代码旁边 注释上改
展开
 我来答
与子如初见
推荐于2017-12-15 · TA获得超过1638个赞
知道小有建树答主
回答量:1117
采纳率:100%
帮助的人:784万
展开全部
#include <stdio.h>
int main()
{
char st(char );//改为void st(char *);不需要返回值的函数定义为void即可,形参应该是char *
char c[20];
gets(c);
st(c);
}
int st(char )//改为void st(char *);函数的定义需要形参。
{
int i, k=0, o=0, n=0;
for(i=0; i<20; i++) /*改为for(i=0;i<strlen(c);i++);不应出现20这种魔鬼数字。strlen需加上头文件string.h*/
{
if((c[i]>'a' && c[i]<'z') || (c[i]>'A' && c[i]<'Z'))//这行的所有>、<分别改为>=和<=。
k++;
else if(c[i]>'0' && c[i]<'9')//同上,将>、<改为>=和<=.
n++;
else
o++;
}
printf("数字有%d个\n字母有%d个\n字符有%d个", k, n, o);
}
//差不多就这样
匿名用户
2013-12-11
展开全部
#include <stdio.h>
#include <string.h>
int st(char *c, int len);
int main()
{
    char c[20];
    gets(c);
    int len = strlen(c);
    st(c, len);
}
int st(char *c, int len)
{
    int i, k=0, o=0, n=0;
    for(i=0; i<len; i++)
    {
        if((c[i]>='a' && c[i]<='z') || (c[i]>='A' && c[i]<='Z'))
            k++;
        else if(c[i]>='0' && c[i]<='9')
            n++;
        else
            o++;
    }
    printf("数字有%d个\n字母有%d个\n字符有%d个", n, k, o);
}

修改成这样。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式