double root(double a, double b)
站在用户的角度思考问题,与客户深入沟通,找到建阳网站设计与建阳网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、网站空间、企业邮箱。业务覆盖建阳地区。
{
double temp = (a+b)/2;//用临时变量记录a,b均值
double q = hh(temp);
double t = a;
if(fabs(q)1e-6)//满足精度,直接返回
return t;
if(q=0)
return root(temp, b);
//else
return root(a, temp);
}
#includeiostream
using namespace std;
void print(int w)
{
int i;
if(w==0) return;
print(w-1);
for(i=1;iw;i++) printf("%d ",w);
printf("%d\n",w);
}
int main()
{print (5);}
#include "stdio.h"
void main()
{
int i=5;
void palin(int n); //声明放在这里
printf("\40:");
palin(i);
printf("\n");
}
void palin( int n ) //这里的应该是函数的实现。
{
char next;
if(n=1)
{
next=getchar();
printf("\n\0:");
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
printlist函数是递归,所以只需要修改printlist函数即可
void printlist( NODE * l ) {
while(l!=NULL){
printf( " %d ", l - num ) ;
l = l-next;
}
return ;
}
但是,由于你链表的创建是向链表头插入新元素,所以,当你输入1 2 3时,你创建的链表数据的顺序就是3 2 1(3是链表头的数据)。所以把递归改成循环后,打印的内容就是321了。
没改之前,因为是递归算法,只保证你输入的内容和打印的内容的顺序是一样的,但是这个时候是按照链表的逆序打印的。
//循环实现
#includestdio.h
int main()
{
int n, t = 0;
scanf("%d", n);
if(n=0)return 0;
else
while(n){
t = t * 10 + n % 10;
n /= 10;
}
printf("%d", t);
return 0;
}
简单修改一下就可以变递归了。代码如下
#includestdio.h
int fanzhuan(int n,int t){
t = t * 10 + n % 10;
n /= 10;
if(n0)return fanzhuan(n,t);
return t;
}
int main()
{
int n, t = 0;
scanf("%d", n);
if(n=0)return 0;
else t=fanzhuan(n,t);
printf("%d", t);
return 0;
}