分析:这题比较简单,由于题目没有说去掉一个最高和最低,我就都去掉了,要保留一位小数用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; }