csp 201903-1 小中大

//得分80
//只有一个数据的情况 中位数的输出忘记格式化 数据类型以及各种类型所表示的范围
#include<iostream>//有下划线不代表是错 using namespace std; int main(){ int n;//数组元素的数目 int mid; cin>>n; int* array=new int[n]; for(int i=1;i<n+1;i++){ cin>>array[i]; } if(n%2==0) mid=(array[n/2]+array[n/2+1])/2.0; else mid=array[n/2+1]; if(array[1]>array[n]) cout<<array[1]<<" "<<mid<<" "<<array[n]<<endl; else cout<<array[n]<<" "<<mid<<" "<<array[1]<<endl; }
//得分100
#include <iostream> #include <iomanip> #include <cstdio> using namespace std; int main() { int N; cin>>N; float *n=new float[N]; for(int i=0;i<N;i++)cin>>n[i]; long a,b; float m; if(N==1){a=b=n[0];m=n[0];}//只有一个数的情况 else{ if(N%2)m=n[(N+1)/2-1];else m=(n[N/2-1]+n[N/2])/2.0; if(n[0]<n[1]){a=n[0];b=n[N-1];} else {a=n[N-1];b=n[0];} } cout << b << " "; cout << setiosflags(ios::fixed) << setprecision(m-(int)m<0.01?0:1) << m << " " ;//输出的小数要格式化 cout << a << endl; return 0; }
//借鉴:https://blog.csdn.net/fontain/article/details/9072862
//得分100
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int n;//数组元素的数目
    float mid;//int  long  float 注意区分
    cin>>n;
    long* array=new long[n+1];//array[0]不用的话,有n+1个数--------数的大小   小于十的七次方 
    for(int i=1;i<n+1;i++){
        cin>>array[i];
    } 
    if(n==1) cout<<array[1]<<" "<<array[1]<<" "<<array[1]<<endl;//只输入一个数的时候 
    if(n%2==0) mid=(array[n/2]+array[n/2+1])/2.0;
    else  mid=array[n/2+1]; 
    if(array[1]>array[n]) {
       cout<<array[1]<<" "; 
       cout<<setiosflags(ios::fixed)<< setprecision(mid-(int)mid<0.01?0:1)<<mid<<" ";
       //小于0.01的话,就是整数 ;否则是小数,保留一位,自动四舍五入 
       cout<<array[n]<<endl;    
    }
    else  {
        cout<<array[n]<<" ";
        cout<<setiosflags(ios::fixed)<<setprecision(mid-(int)mid<0.01?0:1)<<mid<<" ";
        cout<<array[1]<<endl;
    }
 


return 0;
}
注意:为什么用float double long long 而不用int??
1.是不是下面数据范围的限制
2.觉得比较可靠https://zhidao.baidu.com/question/135985243.html

 

posted @ 2019-08-01 21:21  祺祥  阅读(659)  评论(3编辑  收藏  举报