您的位置:首页 > 理论基础 > 数据结构算法

严蔚敏数据结构第一章编程

2018-01-04 17:32 183 查看
1.

#include <iostream>
using namespace std;
void descend(int &X,int &Y,int &Z){
int max,min,mid;
if (X>Y){
max=X;min=Y;
}else{
max=Y;min=X;
}
if(Z>max){
max=Z;
}
if(Z<min){
min=Z;
}
mid = X+Y+Z-max-min;
X=max;Z=min;Y=mid;
}
int main(){
int X,Y,Z;
cout<<"请依次输入XYZ"<<endl;
cin>>X>>Y>>Z;
descend(X,Y,Z);
cout<<"从大到小排列是"<<X<<","<<Y<<","<<Z<<endl;
return 0;
}


2.

#include <iostream>
using namespace std;
int Fibonacci(int k,int n){
if (k<1) exit(-1);
int *p;
p=new int[k+1];
if(!p) exit(-1);
for (int i=0;i<k+1;i++){
if(i<k-1){
p[i] = 0;
}else{
p[i] = 1;     //第1次已经计算
}
}
int x;
for(int i=k+1;i<n;i++){
x = p[0];
for(int j=0;j<k;j++) p[j] = p[j+1];
p[k] = 2*p[k-1]  - x;
}
return p[k];

}
int main(){
int k,n;
cout<<"请依次输入k阶Fibonacci数列的第n项,中的k和n"<<endl;
cin>>k>>n;
cout<<Fibonacci(k,n)<<endl;
return 0;
}


3.

#include <iostream>
using namespace std;
enum SchoolName{A,B,C,D,E};
enum SexType{Female,Male};
struct Component{
char event[3];
SexType sex;
SchoolName school;
int score;
};
struct Sum{
int MaleSum;
int FemaleSum;
int TotalSum;
};
Sum SumScore(SchoolName sn,Component a[],int n){
Sum temp;
temp.MaleSum=temp.FemaleSum=temp.TotalSum=0;
int i;
for(i=0;i<n;i++){
if(a[i].school==sn) {
if (a[i].sex == Male) {
temp.MaleSum += a[i].score;
}
if (a[i].sex == Female) {
temp.FemaleSum += a[i].score;
}
temp.TotalSum = temp.MaleSum + temp.FemaleSum;
}
}
return temp;
}
int main(){
Component c[5];
c[0] = {{"p1"},Female,A,1};
c[1] = {{"p2"},Female,A,2};
c[2] = {{"p3"},Male,A,3};
c[3] = {{"p4"},Female,B,4};
c[4] = {{"p5"},Male,A,5};
cout<<"A-Female:"<<SumScore(A,c,5).FemaleSum<<endl;
cout<<"A-Male:"<<SumScore(A,c,5).MaleSum<<endl;
cout<<"A-Total:"<<SumScore(A,c,5).TotalSum<<endl;
cout<<"B-Female:"<<SumScore(B,c,5).FemaleSum<<endl;
cout<<"B-Total:"<<SumScore(B,c,5).TotalSum<<endl;
return 0;
}


4.

#include <iostream>
using namespace std;
double polynomail(int a[],int i,double x,int n);
#define N 10
int main(){
int a[N],x;
cout<<"请依次输入多项式的系数,从零开始。"<<endl;
for(int i=0;i<N;i++){cin>>a[i];}
cout<<"请输入要计算的多项式的x:"<<endl;
cin>>x;
cout<<"计算的多项式数分别为:"<<endl;
for(int j=0;j<N;j++){cout<<"第"<<j<<"项为:"<<polynomail(a,j,x,N)<<endl;}
return 0;
}
double polynomail(int a[],int i,double x,int n){
if (i>n||i<0){exit(-1);}
for (int k=0;k<i;k++){
x *= x;
}
x = a[i]*x;
return x;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: