重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
创新互联建站长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为博望企业提供专业的成都网站建设、成都做网站,博望网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
#define N 100
void count(char str[],int times[]) //统计小写字符出现次数
{
int i;
for(i=0;str[i]!='\0';i++)
{
if(str[i]='a' str[i]'a'+26) //只统计小写字符
times[str[i]-97]++; //字符a的ascii码为97,str[i]-97正好将26个字母对应在times数组的26个位置上。
}
}
int main()
{
char str[N];
int i,times[26]; //time数组中每一个元素代表一个小写字符,其值代表字符的出现次数
for(i=0;i26;i++) //初始化,所有字符次数置0
times[i]=0;
scanf("%s",str); //读入字符串
count(str,times); //调用函数统计次数,让times装载统计结果
for(i=0;i26;i++) //输出结果,小写字符a的ascii码为97.
{
printf("%c\t%d\n",i+97,times[i]);
}
return 0;
}
void f(int* k, int n, int* fcnt, int* scnt)
{
void s(int* k, int n, int* fcnt, int* scnt);
++*fcnt;
++* k;
if (*k == n)
return;
s(k, n, fcnt, scnt);
}
void s(int* k, int n, int* fcnt, int* scnt)
{
void f(int* k, int n, int* fcnt, int* scnt);
++*scnt;
++*k;
if (*k == n)
return;
f(k, n, fcnt, scnt);
}
void solve(int n)
{
void f(int* k, int n, int* fcnt, int* scnt);
int k = 0, fcnt = 0, scnt = 0;
f(k, n, fcnt, scnt);
//输出f与s两个函数的调用次数
printf("%d %d", fcnt, scnt);
}
传递一个指针进函数,用指针来记录
如:
#includestdio.h
int
call(int
*p)
{
(*p)++;
return
0;
}
int
main()
{
int
a=0;
int
*p=a;
call(p);
//调用1次
call(p);
//调用2次
printf("call函数调用次数:%d\n",a);
}
#include stdio.h
int count(char* s, char x);
int main()
{
char s[80], x;
gets(s);
scanf("\n%c", x);
printf("%d", count(s, x));
}
int count(char* s, char x)
{
static int n = 0;
if (*s)
{
if (*s == x)
n++;
count(s + 1, x);
}
return n;
}