分析:这题比较简单,由于题目没有说去掉一个最高和最低,我就都去掉了,要保留一位小数用printf吧
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[7];
for(int i=0;i<7;i++)
scanf("%d",&a[i]);
sort(a,a+7);
int maxa=a[6],mina=a[0];
double sum=0,k=0;
for(int i=0;i<7;i++)
if(a[i]!=maxa&&a[i]!=mina){
sum+=a[i] ;
k++;
}
if(k)
printf("%.1f",sum/k);
return 0;
}
分析:这里处理三个问题,情况考虑清楚即可
#include<iostream>
#include<string>
using namespace std;
int main(){
string a,b;
getline(cin,a);
int k=0;
while(k<a.size()&&a[k]==' ')//去掉前面的空格
{
k++;
}
for(int i=k;i<a.size();i++)
{
if('0'<=a[i]&&a[i]<='9'&&((a[i+1]>='a'&&a[i+1]<='z')||(a[i+1]>='A'&&a[i+1]<='Z')))
{
b+=a[i];
b+='_';
}
else if(((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))&&'0'<=a[i+1]&&a[i+1]<='9')
{
b+=a[i];
b+='_';
}
else if(a[i]==' '&&a[i+1]==' '){}
else {
b+=a[i];}
}
cout<<b<<endl;
return 0;
}
分析:这里的题目描述不太清楚,默认是点分十进制输入
#include<iostream>
#include<string>
using namespace std;
void judge(string str){
int sum=0,k=1;
for(int i=0;i<str.size();i++){
if('0'<=str[i]&&str[i]<='9'){
sum=sum*10+str[i] -'0';
if(sum>255)
{
printf("ERROR");
return;
}
}
else if(str[i]='.'&&('0'<=str[i-1]&&str[i-1]<='9')&&('0'<=str[i+1]&&str[i+1]<='9')){
sum=0;k++;
if(k>4)
{
printf("ERROR");
return;
}
}
else{
printf("ERROR");
return;
}
}
printf("right") ;
}
int main(){
string a;
getline(cin,a);
judge(a);
return 0;
}