大神求帮忙啊,我的程序有的问题啊
这个程序是一个调用自己写的函数的,函数count()是用来统计用户从键盘上输入的字符中的数字、字母、空格、还有其他的数目!问题:为什么程序显示的值,总比一共输入的少了一个,我猜想是第一次循环时,变量的值没有相应增加,各种方法都试过的,真心搞不懂,希望大神帮帮忙,万分感谢!
#include <stdio.h>
void main ()
{
int count (char c , int a) ;
char c;
int a = {0} ;
c = getchar() ;
count (c , a) ;
printf ("总数:%d\n,数字:%d\n,字母:%d\n,空格:%d\n,其他:%d\n",a,a,a,a,a) ;
}
int count (char c ,int a)
{
for (a = 0; (c = getchar ()) != '\n';a++)
{
if ('0' <= c && c <= '9')
{
a++;
}
else if (('A' <= c && c <= 'Z' ) || ('a' <= c && c <= 'z'))
{
a++ ;
}
else if (c == ' ')
{
a++ ;
}
else
a = a - a - a -a ;
}
return 0 ;
}
void main ()
{
int count (char c , int a) ;
char c;
int a = {0} ;
/* c = getchar() ; */
count (c , a) ;
printf ("总数:%d\n,数字:%d\n,字母:%d\n,空格:%d\n,其他:%d\n",a,a,a,a,a) ;
} 路过看一看= =! 假如你输入了9个数,那么最后一次循环的时候a【0】=8也就是a【4】=a【0】-1-2-3,所以少了1。你可以把a【4】的计算放在主函数里 看不懂,求大神指教吧,来来来
页:
[1]