重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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);
}
b[a[i]]++; a[i] 是数组元素,数值在0-9范围内,所以b[a[i]] 总在 b[0]到b[9]之间。
b[] 已初始化为 0。
b[a[i]]++; 是 b[a[i]]=b[a[i]]+1; 它是累加器。
可以看成: x=a[i]; b[x]=b[x]+1; 第一次 b[x]++变1,第二次 b[x]++变2, 第三次 b[x]++变3。 例如 i=1,7,9 时 x=5,b[5] 累加3次变3。 这样就统计出5出现的次数了。
#include stdio.h
int fun(int a[],int n,int m) /*形参n表示数组中元素个数,m表示要统计的那个整数*/
{int i,k=0;
for(i=0; in; i++)
{if(a[i]==m) k++; }
return k;
}
void main()
{int ar[10],i,m,k;
scanf("%d",m);
printf("\nPlease input array:");
for(i=0; i10; i++)
scanf("%d",ar[i]);
k=fun(ar,10,m);
printf("\n %d is found %d times",m,k);
}
#includestdio.h
#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;
}
#include stdio.h
#include string.h
#define MAX 1000
int next[MAX];
int s_len;
char str[MAX], str_t[MAX];
void get_next(){
int i;
next[0] = -1;
for(i = 1; i s_len; ++i){
int j = next[i-1];
while(str_t[i] != str_t[j+1] j != -1)
j = next[j];
if(str_t[i] == str_t[j+1])
next[i] = j + 1;
else
next[i] = -1;
}
}
int kmp(char *str, char *str_t){
int i;
int len = strlen(str);
int j;
int cnt = 0;
s_len = strlen(str_t);
get_next();
j = -1;
for(i = 0; i len; ++i){
if(str[i] != str_t[j+1] j != -1)
j = next[j];
if(str[i] == str_t[j+1]){
++j;
}
if(j == s_len-1){
cnt++;
j = next[j];
}
}
return cnt;
}
int main(){
scanf("%s %s", str, str_t);
printf("cnt %d\n", kmp(str, str_t));
return 0;
}
输入 abcdefabcdefabcdef cde