碰到多项求和之类的题,不会写有返回值的函数。写成void函数,在子函数里输出没有问题,但题目要求在主函数打印输出结果,把输出语句放在主函数结果就乱码。这种情况怎么解决?
例如:
#include<stdio.h>
void find(char a[]);
void main()
{
char a[10];
int n1,n2,n3;
printf("input a string:\n");
gets(a);
find(a);
}
void find(char a[])
{
int n1,n2,n3;
n1=n2=n3=0;
int i;
for(i=0;a[i]!='\0';i++)
{if(a[i]>='0'&&a[i]<='9')
n1++;
else if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z'))
n2++;
else if(a[i]==' ')
n3++;
}
printf("zimu geshu:%d,shuzi geshu:%d,kongge geshu:%d",n1,n2,n3);
}
把printf语句放主函数find(a)语句后,在主函数里定义了n1,n2,n3,但输出结果是乱码。放子函数就正确。怎么放到主函数里面。求教大神,马上机考了,C的水平很弱,没有财富值,对不住了