代码如下
#include <stdio.h>
char a;
//int letters=0,digit=0,space=0,others=0;
int letters, digit, space, others;
letters=0;
digit=0;
space=0;
others=0;
void main ()
{
printf ("输入一行字符:\n");
do
{
scanf ("%c",&a);
if (a<='Z'&&a>='A')
letters++;
else if (a<='z'&&a>='a')
letters++;
else if (a<='9'&&a>='0')
digit++;
else if (a==' ')
space++;
else
others++;
}
while (a!='\n');
printf ("letters=%d,digit=%d,space=%d,others=%d\n",letters,digit,space,others);
}
报错如下:
april_6_5.cpp
D:\visual c++ 6.0\visual c++\Microsoft Visual Studio\MyProjects\april_6_5\april_6_5.cpp(11) : error C2501: 'letters' : missing storage-class or type specifiers
D:\visual c++ 6.0\visual c++\Microsoft Visual Studio\MyProjects\april_6_5\april_6_5.cpp(11) : error C2086: 'letters' : redefinition
而直接在定义变量的时候赋值就没有错。为什么
经测试 两种方式都可以,你之所以出现上述错误是因为你的编译的语言不对,你这是标准的C语言,而你用的文件后缀是.cpp,这是标准的C++语言的,所以会出现这种错误,C++语言全局变量必须要声明的时候赋值,不可以在全局给他 在声明之后再写语句赋值。你可以改为后缀名.c或者是.h的来编译 就可以了