———
登录 | 论坛导航 -> 华新鲜事 -> 社会百科 | 本帖共有 8 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:春兰特派员 (等级:2 - 初出茅庐,发帖:181) 发表:2003-09-14 17:20:42  楼主  关注此帖
———
write a recursive version of function which returns the position of the first appearance of a specified digit in a positive number.count from right and starts from 1.
i.e:input 1234 and 3,output 2,input 123241 and 2,output 3.
以上都不难,可以实现,但是他又规定如果那个digit不在那个数中的话,输出0,例如:input 234 and 1,output 0.这可把我难倒了。
注意:该程序要用recursive version写。
请高手指教,很急,谢谢!
Put your OWN COOL signature here!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:春兰特派员 (等级:2 - 初出茅庐,发帖:181) 发表:2003-09-14 17:21:35  2楼
标题:———C语言难题一道,急!———
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:吴永铮 (等级:8 - 融会贯通,发帖:2078) 发表:2003-09-15 10:34:20  3楼 评分:
here
int fun (int n, int d)
{
int n;

if (n <= 9) return (n == d) ? 1 : 0;
if (n%9 == d) return 1;
tmp = fun(n/10, d);
return tmp ? (tmp+1) ? 0;
}
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:香陵居士 (等级:16 - 好恐怖呀,发帖:22662) 发表:2003-09-15 10:41:38  4楼
hereint fun (int n, int d) { int n; if (n (more...)
"return tmp ? (tmp+1) ? 0;" 这个什么意思??
?好像不能当双目运算符吧……
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:吴永铮 (等级:8 - 融会贯通,发帖:2078) 发表:2003-09-15 10:49:46  5楼
"return tmp ? (tmp+1) ? 0;" 这个什么意思???好像不能当双目运算符吧……
typo. another typo is
if (n%9 == d) return 1;
should be
if (n%10 == d) return 1;
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:春兰特派员 (等级:2 - 初出茅庐,发帖:181) 发表:2003-09-15 18:15:23  6楼
hereint fun (int n, int d) { int n; if (n (more...)
果然高手,虽然我后来做出来了!
但是比我的程序短了一半,厉害厉害!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:春兰特派员 (等级:2 - 初出茅庐,发帖:181) 发表:2003-09-15 18:19:39  7楼
我自己的算法
int rposition(int number,int digit)
{
int static i=0;
int temp;
if(number%10==digit)
{
i=0;
return 1;
}
else if(number==0)
{
i++;
return 1+rposition(number/10,digit);
}
}
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
作者:jianxing (等级:2 - 初出茅庐,发帖:36) 发表:2003-09-15 22:24:14  8楼 评分:
My C source code, have debugged in TC
#include "stdio.h"
int position(unsigned long number, int digit)
{
int i=0, remainder;
unsigned long number0=number;
while (number0!=0)
{
number0=number/10;
remainder=number-number0*10;
number=number0;
if (remainder==digit)
{
i++;break;
}
else
i++;
}
if (number0==0)
return(0);

else
return(i);
}
void main()
{
unsigned long number=324263555;
int digit=8;
printf("(%ld,%d)=%d\n",number,digit,position(number,digit));
}
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版只看此人从这里展开收起列表
论坛导航 -> 华新鲜事 -> 社会百科 | 返回上一页 | 本主题共有 8 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码