#include
int main()
{
double r, h, l,s, v;
double PI = 3.141592654;
printf("please enter the radius");
scanf_s("%lf", &r);
printf("please enter the high");
scanf_s("%lf", &h);
l = 2 * PI * r;
s = 4*PI * r*r;
v = 3 / 4 * PI * r *r*r;
printf("圆的周长:%.2f\n", l);
printf("圆球的表面积:%.2f\n,s");
printf("圆球的体积:%.2f\n,v");
return 0;
}
#include<stdio.h>
int main()
{
double r, h, l,s, v;
double PI = 3.141592654;
printf("please enter the radius");
scanf_s("%lf", &r);
printf("please enter the high");
scanf_s("%lf", &h);
l = 2 * PI * r;
s = 4*PI * r*r;
v = 3.0 / 4 * PI * r *r*r;
printf("圆的周长:%.2f\n", l);
printf("圆球的表面积:%.2f\n", s);
printf("圆球的体积:%.2f\n", v);
return 0;
}
Node path[MAX_LEN]; //MAX_LEN取结点总数即可
int depth; //从起点走到它,走的深度,起点深度为0
//从起点出发,寻找到终点的路径, 并且在这过程中,要把走过的路径给记下来
bool dfs(V){
if(V为终点){
path[depth]=v; //记录到路径中去
return true;
}
if(V为旧点)
return false;
将v标记为旧点;
path[depth]=v; //没有走,就走这个点
++depth;
对和v相邻的每个结点U{
if(dfs(U)==true){ //从u出发能不能到达终点
return true;
}
//如果把和v相邻的每个顶点都试过了也无法走到终点,v就不应该出现在从起点到终点的路径上面。相当于回退,退到v的父节点上面
--depth;
return false;
}
}
int main(){
将所有点都标记为新点;
depth=0;
//从起点到终点找路,如果找到了路,还得把路记下来,如果起点返回值为true,//说明我们已经找到了从起点到终点的路,并且这条路已经被记录在path数组
//里面了,这条路上面的结点数是由depth来记录的
if(dfs(起点)){
for(int i=0;i<=depth;++i){
cout<<path[i]<<endl;
}
}
}
1->3->7->9=>7->A=>7=>3->5->6->8
分析过程:走1379,回退到7,把9给弹出去,走到A,又把A放进去了。然后回退到7,把A弹出去了,然后回退到3,把7弹出去了,然后从3走到5,把5放到path中,然后走到6,6被放到path中,然后再走到8,8被放到path中去了。此时就可以找到路径
path:1,3,5,6,8