标题:追加(二题)两道编程题
取消只看楼主
cranky
Rank: 1
等 级:新手上路
威 望:1
帖 子:89
专家分:0
注 册:2005-11-21
 问题点数:0 回复次数:0 
追加(二题)两道编程题

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;

for(;*t!='\0' && *s!='\0';s++,i++)
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;
}

暂时没有好的思路!!将就了!!呵呵


搜索更多相关主题的帖子: return count 
2005-12-06 12:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-36852-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.454557 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved