解题思路:
两种方法
注意事项:
传递实参时要传递指针
形参的设置是指针
参考代码:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<math.h>
void count(char *m,int *a,int* b,int* c,int* d);
int main()
{
char ch;
int word=0,figure=0,space=0,other=0;
while ((ch=getchar())!='\n')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
word++;
}
else if(ch>='0'&&ch<='9')
{
figure++;
}
else if(ch==' ')
{
space++;
}
else
{
other++;
}
}
printf("%d %d %d %d",word,figure,space,other);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<math.h>
void count(char *m,int *a,int* b,int* c,int* d);
int main()
{
char a[1000];
int word=0,figure=0,space=0,other=0;
gets(a);
count(a,&word,&figure,&space,&other); //传入指针
}
void count(char *m,int *a,int* b,int* c,int* d) //形参的设置是指针
{
int i=0;
while(m[i]!='\0')
{
if((m[i]>='a'&&m[i]<='z')||(m[i]>='A'&&m[i]<='Z'))
{
(*a)++;
}
else if(m[i]>='0'&&m[i]<='9')
{
(*b)++;
}
else if(m[i]==' ')
{
(*c)++;
}
else
{
(*d)++;
}
i++;
}
printf("%d %d %d %d",*a,*b,*c,*d);
}
0.0分
0 人评分