一个数输入的字母和数字个数的程序

#include"stdafx.h"#include<stdio.h>//------------------------------------------------... #include "stdafx.h"
#include <stdio.h>
//------------------------------------------------------------------------------------------

int numcount (char *s)
{
int i=0;

while (1)
{
if (*s=='!') break;
else if (*s>='0' && *s<='9')
{
i++;
s++;
}
}
return i;
}

//------------------------------------------------------------------------------------------
int letcount (char *s)
{
int j=0;

while (1)
{
if (*s=='!') break;
if ((*s>='a' && *s<='z') || (*s>='A' && *s<='Z'))
{
j++;
s++;
}
}
return j;
}

//------------------------------------------------------------------------------------------

int main(int argc, char* argv[])
{
char s[256];
int i,j;

gets (s);
i=numcount(s);
j=letcount(s);
printf ("numcount=%d\n",i);
printf ("letcount=%d\n",j);
return 0;
}

错误?
展开
 我来答
Hustchx
2011-11-04 · TA获得超过784个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:297万
展开全部
#include "stdafx.h"
#include <stdio.h>
//------------------------------------------------------------------------------------------

int numcount (char *s)
{
int i=0;

while (1)
{
if (*s=='!') break;
else if (*s>='0' && *s<='9')
{
i++;
}
s++;
}
return i;
}

//------------------------------------------------------------------------------------------
int letcount (char *s)
{
int j=0;

while (1)
{
if (*s=='!') break;
if ((*s>='a' && *s<='z') || (*s>='A' && *s<='Z'))
{
j++;
}
s++;
}
return j;
}

//------------------------------------------------------------------------------------------

int main(int argc, char* argv[])
{
char s[256];
int i,j;

gets (s);
i=numcount(s);
j=letcount(s);
printf ("numcount=%d\n",i);
printf ("letcount=%d\n",j);
return 0;
}
主要是你循环里面写错了,判断之后,不论是不是数字或者是不是字母,处理之后指针都要向下移,指向下一个,不然循环无法终止。
希望对你有帮助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式