201903-1
95分代码:
#include
using namespace std;
const int MAX=100010;
int n;
int a[MAX];
int main()
{
int max,min;
double mid;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
if(a[0]>a[n-1])
{ max=a[0];
min=a[n-1];
}
else if(a[0]a[n-1])
max=min=mid=a[0];
else
{ max=a[n-1];
min=a[0];
}
if(n%21)
{
mid=a[n/2];
cout<<max<<" “<<mid<<” “<<min<<endl;
}
else
{
mid=(a[n/2-1]+a[n/2])*1.0/2;
if((mid-(int)mid)==0){ //整数
cout<<max<<” “<<(int)mid<<” “<<min<<endl;
}
else{
printf(”%d %.1f %d\n",max,mid,min);
}
}
return 0;
}
100分代码(非原创)
#include
#include
#include
using namespace std;
int a[100010];
int main(){
int n,maxx,minn;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
if(a[0]>a[n-1]){
maxx=a[0];
minn=a[n-1];
}
else{
maxx=a[n-1];
minn=a[0];
}
if(n%21){
int c=a[n/2];
cout<<maxx<<" “<<c<<” "<<minn;
}else{
int flag=0;
if((a[n/2]+a[n/2-1])%20)
flag=1;
float c=(a[n/2]+a[n/2-1])/2.0;
//c= round(c,1);
//cout<<"c="<<c<<endl;
if(flag)
cout<<maxx<<" "<<(a[n/2]+a[n/2-1])/2<<" "<<minn;
//这里如果是直接输出c的话会有问题,因为c是double型,然而flag判断出来的是整型
else
printf("%d %.1f %d",maxx,c,minn);
}
return 0;
}
201903-2
( Learning from non-original)
```cpp
#include<iostream>
using namespace std;
char a[10];
int b[10];
int main()
{
int n, k = 0;
cin >> n;
while (n--)
{
cin >> a;
int i;
for (i = 0; i < 7; i += 2)
{
b[i] = a[i] - '0';
}
for (i = 1; i < 7; i += 2)//扫乘除
{
if (a[i] == 'x')
{
b[i + 1] = b[i - 1] * b[i + 1];//B位置保存A*B
if (i == 1)//符号用上一个代替
a[i] = '+';
else
a[i] = a[i - 2];
b[i - 1] = 0;//A位置 置0
}
else if (a[i] == '/')
{
b[i + 1] = b[i - 1] / b[i + 1];
if (i == 1)
a[i] = '+';
else
a[i] = a[i - 2];
b[i - 1] = 0;
}
}
for (i = 1; i < 7; i += 2)//扫一遍加减
{
if (a[i] == '+')
b[0] += b[i + 1];
else if (a[i] == '-')
b[0] -= b[i + 1];
}
if (b[0] == 24)//判断答案
cout << "Yes" << endl;
else
cout << "No" << endl;
}
return 0;
}