注册 登录
编程论坛 C++教室

帮忙在程序旁边作解释,谢谢!

韦夏霆 发布于 2012-11-23 19:41, 225 次点击
#include<iostream>
using namespace std;
double sn=100;
int main(){
    void height(double& hn,int i);
    double hn=100;
    int i=1;
    height(hn,i);
    hn=hn/2;
    cout<<"第十次反弹的高度为:"<<hn<<endl;
    return 0;
}
void height(double& hn,int i){
    hn=hn/2;
    sn=sn+2*hn;
    i++;
    if(i==10){
        cout<<"第十次落地时经历的路程为:"<<sn<<endl;
        return;
    }
    if(i<10){
        height(hn,i);
    }
}
帮忙分析程序运行过程,谢谢!
2 回复
#2
w5277050902012-11-23 20:24
程序代码:
#include<iostream>
using namespace std;
double sn=100;  //这里定义全局变量
int main(){
    void height(double& hn,int i);//函数的声明;
    double hn=100;//第一次的高度
    int i=1;
    height(hn,i);//调用函数
    hn=hn/2;//这又什么意图?我是没明白  
    cout<<"第十次反弹的高度为:"<<hn<<endl;输入语句
    return 0;
}
void height(double& hn,int i){  //函数的定义
    hn=hn/2;//反弹的高度为前一次的一半
    sn=sn+2*hn;//反弹的路程
    i++;
    if(i==10){//反弹了十次就结束
        cout<<"第十次落地时经历的路程为:"<<sn<<endl;//
        return;
    }
    if(i<10){    //如果反弹次数没到10次就继续反弹
        height(hn,i);
    }
}


[ 本帖最后由 w527705090 于 2012-11-23 20:40 编辑 ]
#3
w5277050902012-11-23 20:26
程序代码:
#include<iostream>
using namespace std;
double sn=100;  //这里定义全局变量
int main(){
    void height(double& hn,int i);//函数的声明;
    double hn=100;//第一次的高度
    int i=1;
    height(hn,i);//调用函数
    hn=hn/2;//这又什么意图?我是没明白
    cout<<"第十次反弹的高度为:"<<hn<<endl;//输出语句
    return 0;
}
void height(double& hn,int i){  //函数的定义
    hn=hn/2;//反弹的高度为前一次的一半
    sn=sn+2*hn;//反弹的路程
    i++;
    if(i==10){//反弹了十次就结束
        cout<<"第十次落地时经历的路程为:"<<sn<<endl;//这个结果好像是不对的 。。。
        return;
    }
    if(i<10){    //如果反弹次数没到10次就继续反弹
        height(hn,i);
    }
}
不知道,这个程序在我看来是有问题的。。。。。。。

[ 本帖最后由 w527705090 于 2012-11-23 20:41 编辑 ]
1