下一堆、戀人 发表于 2013-10-30 19:13:19

大神求帮忙啊,我的程序有的问题啊

这个程序是一个调用自己写的函数的,函数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 ;
       
       
       
}

ambition1982 发表于 2013-10-30 21:48:47

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) ;
}

未闻丶花名 发表于 2014-2-6 13:42:07

路过看一看= =!

a471893438 发表于 2014-2-6 15:26:05

假如你输入了9个数,那么最后一次循环的时候a【0】=8也就是a【4】=a【0】-1-2-3,所以少了1。你可以把a【4】的计算放在主函数里

xuting 发表于 2014-2-6 15:59:03

看不懂,求大神指教吧,来来来
页: [1]
查看完整版本: 大神求帮忙啊,我的程序有的问题啊