回 帖 发 新 帖 刷新版面

主题:请大家帮忙看看这个程序什么问题啊,谢谢

#include <stdio.h>
int Zimu,Kongge,Shuzi;
main()
{int tongji(char b[],int n);
char a[10];
 int i,j,qita;
 printf("entry a sery char:");
 for (i=0;(a[i]=getchar())!='\n';i++)
 printf("%c\n",a[i]);
 qita=tongji(a,i);
 printf("zimu=%d\nkongge=%d\nshuzi=%d\nkongge=%d\nqita=%d\n",Zimu,Kongge,Shuzi,qita);
 }

 int tongji(char b[],int n)
 {int i,Zimu=0,Shuzi=0,Kongge=0,qita=0;
 for (i=0;i<n;i++)
   {if ((b[i]<='z'&&b[i]>='a')||(b[i]<='Z'&&b[i]>='A')) Zimu++;
     else if(b[i]==32) Kongge++;
      else if(b[i]>=48&&b[i]<=57) Shuzi++; 
                 else qita++;}
 return (qita);
}
运行之后发现全局变量的结果根本就不对

回复列表 (共4个回复)

沙发

在你的 tongji()函数里面去掉  Zimu=0,Shuzi=0,Kongge=0  这一堆吧...

板凳

变量qita也应该是全局的吧?
 printf("zimu=%d\nkongge=%d\nshuzi=%d\nkongge=%d\nqita=%d\n",Zimu,Kongge,Shuzi,qita);----------多了一个kongge=%d/n

3 楼

tongji()函数中
int i,Zimu=0,Shuzi=0,Kongge=0,qita=0;语句中,局部变量Zimu,Kongge,Shuzi覆盖了全局变量,
这个函数不会改变全局变量的值

4 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册