一、实现计算f(x,n)的功能
//非递归
int f(double x,int n)
{
int i;
double sum = x;
for(i = 1;i<=n;i++)
{
sum = sqrt(sum+i);
}
return sum;
}
//递归
int f1(double x, int n)
{
if(n == 0) return x;
return sqrt(n+f1(x,n-1));
}
二、编程2~100中每个整数的素数因子,如:
2= 2
3= 3
4 =2*2
......
void number()
{
int i,j,t;
for(i = 2;i<=100;i++)
{
printf("%d=",i);
t = i;
for(j = 2;j<=t;j++)
{
if(t%j == 0 && j != t)
{
printf("%d*",j);
t /= j;
j = 1;
}
if(t%j == 0 && j == t) printf("%d\n",j);
}
}
}
三、从键盘将若干正整数,按照从小到大的顺序输出出现次数为3及以上的数。
void fun()
{
int a[101]={0},x,i;
scanf("%d",&x);
while(x)
{
a[x] +=1;
scanf("%d",&x);
}
for(i= 1 ;i<=100;i++)
{
if(a[i] >= 3) printf("%d ",i);
}
}
四、从键盘输入一批互不相同的整数,遇文件尾结束,建立一颗二叉排序树。然后对该二叉树遍历,输出所有整数,要求按照递增的顺序输出。
void creat_tree()
{
int x;
TWO_TREE *root;
root = NULL;
while(scanf("%d",&x)!=EOF) //文件结束符在控制台上输入回车后再ctrl+z
{
tree(&root,x);
}
traverse(root);
}
void tree(TWO_TREE **p,int x)
{
if(*p == NULL)
{
*p= (TWO_TREE *)malloc(sizeof(TWO_TREE));
(*p)->data = x;
(*p)->left = (*p)->right = NULL;
}
else if(x > (*p)->data) tree(&(*p)->right,x);
else tree(&(*p)->left,x);
}
void traverse(TWO_TREE *p)
{
if(p)
{
traverse(p->left);
printf("%d",p->data);
traverse(p->right);
}
}