1、[程序说明]请编写函数sum(a,n), 求Sn=a+aa+aaa+……+aa…aa(n个a)的值,其中a是一个数字。例如,若a=2, n=5时 Sn=2+22+222+2222+22222,其值应为24690。根据下列已完成的部分, 完成未完成部分(注:在函数sum中不能定义新的变量, 可不用已定义的某些变量). (5分)
long sum(int a, n)
{
long sn, tn;
int count;
.........
return (sn);
}
2、请编写一个函数substr(char *s, char *t), 用于判断字符串t是否包含于字符串s中,若是则返回第一个匹配字符串相应起始下标,否则返回-1。如substr("abcdefg", "cde")将返回2,.substr("abcdefg", "cdf")将返回-1,substr("abcdefgbc", "bc")将返回1 。注意:除可直接利用strlen(char *string)函数外,不能使用任何其它字符串库函数。(7分)
个人答案:
1. long sum(int a,int n)
{
long sn=1, tn=1;
int count;
for(;n-1>=1;n--)
{ tn=tn*10+1;
// printf("%ld\n",tn);
sn=sn+tn;
return a*sn;
}
2. int substr(char *s, char *t)
{ int i=0,flag=0;char *temps;char*tempt;
if(*s!=*t)continue;
else {
temps=s; tempt=t ;
for(; *t!='\0';s++,t++)
if(*s==*t){flag=1;continue;}
else {flag=0;break;}
if(flag==1)return i;
else {s=temps;
t=tempt;
} }
return -1;
}
暂时没有好的思路!!将就了!!呵呵