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

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;
}










  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值