?? recurve.txt
字號(hào):
//遞歸運(yùn)算(棧的應(yīng)用)Recurve.cpp
#include <iostream.h>
#include <iomanip.h>
class list;
class listnode{
friend class list;
int data;
listnode *link;
listnode(int value,listnode *zz):data(value),link(zz)
{}
};
class list{
listnode *first;
//累加和
long sum(listnode *p);
//計(jì)數(shù)器
long count(listnode *p);
public:
list():first(NULL){}
//生成棧
void add(int value);
//顯示棧中數(shù)據(jù)
void display();
//獲取累加和
long get_sum(){return sum(first);}
//獲取數(shù)據(jù)個(gè)數(shù)
long get_count(){return count(first);}
//求平均
float get_avg()
{return (float)sum(first)/count(first);}
};
void list::add(int value){
listnode *p=new listnode(value,first);
if(p!=NULL) first=p;
else cerr <<"Memory Error!" <<endl;
}
void list::display(){
cout<<"數(shù)據(jù)域的各個(gè)值:";
for(listnode *p=first;p!=NULL;p=p->link)
cout<<setw(2)<<p->data;
cout <<endl;
}
long list::sum(listnode *p){
if(p->link==NULL) return p->data;
else return p->data+sum(p->link);
}
long list::count(listnode *p){
long n=1;
if(p->link==NULL){return 1;}
else{return count(p->link)+n;}
}
void main()
{cout<<"Recurve.cpp運(yùn)行結(jié)果:\n";
list a;
a.add(1);
a.add(2);
a.add(3);
a.add(4);
a.display();
cout<<"累加和sum="<<a.get_sum()<<endl;
cout<<"數(shù)據(jù)個(gè)數(shù)count="<<a.get_count()<<endl;
cout<<"平均值avg="<<a.get_avg()<<endl;
cin.get();}
Recurve.cpp運(yùn)行結(jié)果:
數(shù)據(jù)域的各個(gè)值: 4 3 2 1
累加和sum=10
數(shù)據(jù)個(gè)數(shù)count=4
平均值avg=2.5
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -