当前位置: 代码迷 >> C语言 >> [求助]计数问题
  详细解决方案

[求助]计数问题

热度:148   发布时间:2007-11-11 13:54:26.0
[求助]计数问题
下面这段程序运行时会出现乱码,不知道问什么?


//宏定义
#include<stdio.h>
#define MAXLEN 100
//定义全局变量
int nchar,ndigit,nspace,nother;
//定义函数
int count(char s[MAXLEN]);
//主函数
int
main()
{
char a[MAXLEN];
//要求输入字符串
printf("please input a string:\n");
scanf("%s",a);

//调用count函数
count(a);

//输出结果
printf(" nchar=%d,\n ndigit=%d,\n nspace=%d,\n nother=%d\n",nchar,ndigit,nspace,nother);
return(0);
}
/*count 函数*/
int
count( char s[MAXLEN] )
{
int j;
char c;
nchar=ndigit=nspace=nother=0;
for(j=0;j<MAXLEN&&s[j]!='\n';j++)
{
c=s[j];
if(c>='A'&&c<='Z')
nchar++;
else if( c>='a'&&c<='z')
nchar++;
else if(c>='0'&&c<='9')
ndigit++;
else if(c==' ')
nspace++;
else
nother++;
}
return(0);
}

搜索更多相关的解决方案: 计数  

----------------解决方案--------------------------------------------------------
很正常啊.
----------------解决方案--------------------------------------------------------

哪有什么乱码?
please input a string:
dsa32e 23rwed324eddas21345@#$%^&*hbsads4546 $%^fghgh56$%^g
nchar=15,
ndigit=4,
nspace=6,
nother=75
Press any key to continue...


----------------解决方案--------------------------------------------------------

和你的编译器有关吧


----------------解决方案--------------------------------------------------------
好像都和我数的结果不一样

please input a string:
2656666666
nchar=12,
ndigit=13,
nspace=2,
nother=73


Terminated with return code 0
Press any key to continue ...
我输入的全是数字,结果中的nchar应该等于0.。。。。。


----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define MAXLEN 100
//定义全局变量
int nchar,ndigit,nspace,nother;
//定义函数
int count(char s[MAXLEN]);
//主函数
int
main()
{
char a[MAXLEN];
//要求输入字符串
printf("please input a string:\n");
scanf("%s",a);

//调用count函数
count(a);

//输出结果
printf(" nchar=%d,\n ndigit=%d,\n nspace=%d,\n nother=%d\n",nchar,ndigit,nspace,nother);
return(0);
}
/*count 函数*/
int
count( char s[MAXLEN] )
{
int j;
char c;
nchar=ndigit=nspace=nother=0;
for(j=0;j<MAXLEN&&s[j]!='\n';j++)
{
c=s[j];
if(c>='A'&&c<='Z')
nchar++;
else if( c>='a'&&c<='z')
nchar++;
else if(c>='0'&&c<='9')
ndigit++;
else if(c==' ')
nspace++;
else
nother++;
}
return(0);
}

定义MAXLEN 为100,输出的4个数的和就是100了。。。
----------------解决方案--------------------------------------------------------

please input a string:
2656666666
nchar=0,
ndigit=10,
nspace=0,
nother=90
Press any key to continue ...
很正常啊。。。。


----------------解决方案--------------------------------------------------------