你的调用顺序不正确,且函数本身也有问题,要调用函数,你的变量要定义在main中改好的参考#include<stdio.h>#include<string.h>voidinpot(charstr[]){charc;printf("ÇëÊäÈëÒ»´®×Ö·û:");gets(str);}voidcount(char*p){inta=0,b=0,c=0,d=0,e=0;while(*p!='\0'){if('A'<=*p&&*p<='Z'){a++;}elseif('a'<=*p&&*p<='z'){b++;}elseif(*p==''){c++;}elseif('0'<=*p&&*p<='9'){d++;}else{e++;}p++;}printf("´óд×ÖĸÊý:%d\nСд×ÖĸÊý:%d\n¿Õ¸ñÊý:%d\nÊý×ÖÊý:%d\nÆäËû:%d\n",a,b,c,d,e);}voidoutpot(charstr[]){puts(str);}intmain(void){charstr[100];inpot(str);outpot(str);count(str);return0;}