265
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,d;
double e;
cin>>n>>e>>d;
int sum1=0,sum2=0; //可能空置,空置
for(int i=0;i<n;i++)
{
int k,num=0; //低于阈值的天数
cin>>k;
for(int j=0;j<k;j++)
{
double data;
cin>>data;
if(data<e)num++;
}
if(num*2>k&&k>d)sum2++; //空置 (同时也是可能空置)
else if(num*2>k)sum1++; //可能空置
}
printf("%.1f%% %.1f%%",sum1*1.0/n*1.0*100,sum2*1.0/n*1.0*100);//记得添加转义字符
return 0;
}
#include <iostream>
#include<iomanip>
#include<string>
#include<cstdlib>
using namespace std;
int main()
{
string s,ans="";
int i,j,n,k=0,len,flag1=0,flag2=0,flag3=0;
double sum=0.0;
cin>>n;
for(i=0; i<n; i++)
{
cin>>s;
len=s.length();
for(j=0; j<len; j++)
{
if(s[j]=='-') //累计负号
{
ans+="-";
flag1++;
}
else if(s[j]=='.') //累计小数点
{
ans+=".";
flag2++;
}
else if(flag2==0&&s[j]>='0'&&s[j]<='9') //输入为整数
{
ans+=s[j];
}
else if(flag2>0&&s[j]>='0'&&s[j]<='9') //输入为小数
{
flag3++;
}
else //输入为字母
{
flag1=2;
break;
}
}
float t;
try
{
size_t length;
t =stof(s,&length);
}
catch(...)
{
}
if(flag1>1||flag2>1||flag3>2||t<-1000||t>1000) //为负数或多个小数点或不在范围内的数
{
cout<<"ERROR: "<<s<<" is not a legal number"<<endl;
flag1=0;
flag2=0;
flag3=0;
continue;
}
flag1=0;
flag2=0;
flag3=0;
k++;
sum+=t;
}
if(k==0)
cout<<"The average of 0 numbers is Undefined";
else if(k==1)
cout<<"The average of "<<k<<" number is "<<fixed<<setprecision(2)<<sum/k;
else
cout<<"The average of "<<k<<" numbers is "<<fixed<<setprecision(2)<<sum/k;
return 0;
}
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct node{ //结构体储存姓名和身高数据
string name;
int tall;
};
bool cmp(node a,node b){
if(a.tall==b.tall)
return a.name<b.name;
else
return a.tall>b.tall;
}
int main()
{
int n,k;
cin>>n>>k;
vector<node>vstu;
node tmp;
for(int i=0;i<n;i++)
{
cin>>tmp.name>>tmp.tall;
vstu.push_back(tmp);
}
sort(vstu.begin(),vstu.end(),cmp); //降序排序
int ftmp=n/k+n%k; //第一排人数
string vlist[k][ftmp];
int index=0; //顺序取出数据
for(int i=0;i<k;i++)
{
int num=n/k; //每排人数
if(i==0) //多的都加到第一排
{
num+=n%k;
}
int mid=(num/2+1)-1; //中间位置
vlist[i][mid]=vstu[index++].name;
for(int j=1;mid+j<num||mid-j>=0;j++)
{
if(mid-j>=0)
vlist[i][mid-j]=vstu[index++].name; //左
if(mid+j<num)
vlist[i][mid+j]=vstu[index++].name; //右
}
}
for(int i=0;i<k;i++) //输出
{
for(int j=0;j<ftmp;j++)
{
if(vlist[i][j]!="") //非空才输出
{
if(j!=0) cout<<" ";
cout<<vlist[i][j];
}
}
cout<<endl;
}
return 0;
}
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
int main()
{
int n;
cin>>n;
int sum=0;
int a=0;
for(int i=0;i<n;i++)
{
cin>>a;
sum+=a;
}//每个数字作为十位的时候都会出现n-1次,作为个位的时候也会出现n-1次
int b=sum*10*(n-1)+sum*(n-1);
cout<<b;
return 0;
}
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
string s;
getline(cin,s);
int sum=0;
for(int i=0;i<s.length();i++)
{
s[i]=tolower(s[i]); //全部转换为小写
if(s[i]>='a'&&s[i]<='z') //括号等字符不读入
{
int num=s[i]-'a'+1; //全部转换为数字
sum+=num; //求和
}
}
int n0=0;
int n1=0;
while(sum!=0) //转换为二进制数
{
if(sum%2==0) n0++; //统计0的数量
else n1++; //统计1的数量
sum=sum/2;
}
cout<<n0<<' '<<n1;
return 0;
}
#include <iostream>
#include <set>
#include <cmath>
using namespace std;
int ran[10000];
bool isprime(int a) {//判断是否是素数
if(a<=1) return false;
int Sqrt=sqrt((double)a);
for(int i=2;i<=Sqrt;i++) {
if(a%i==0)
return false;
}
return true;
}
int main() {
int n,k;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int id;
scanf("%d",&id);
ran[id]=i+1; //标记每个id对应的排名
}
scanf("%d",&k);
set<int> ss; //ss存储所有已经询问过的id
for(int i=0;i<k;i++)
{
int id;
scanf("%d",&id);
printf("%04d: ",id);
if(ran[id]==0)
{
printf("Are you kidding?\n");
continue;
}
if(ss.find(id)==ss.end())
{
ss.insert(id);
}
else
{
printf("Checked\n");
continue;
}
if(ran[id] == 1)
{
printf("Mystery Award\n");
}
else if(isprime(ran[id]))
{
printf("Minion\n");
}
else
{
printf("Chocolate\n");
}
}
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main()
{
int n,a[100000],i;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n,cmp); //排序
for(i=0;i<n;i++)
{
if(a[i]<=i+1)
break;
}
cout<<i;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int sum[101],sc[101],a[101];
int main()
{
int n,m; //学生人数,题目数量
cin>>n>>m;
for(int i=0;i<m;i++) cin>>sc[i]; //题目分数
for(int i=0;i<m;i++) cin>>a[i]; //正确答案
for(int i=0;i<n;i++) //遍历每个人
{
for(int j=0;j<m;j++) //遍历个人做的每道题
{
int x;
cin>>x; //学生答案
if(x==a[j]) sum[i]+=sc[j]; //如果学生答案为正确答案,则将本题分数加到该学生总分里
}
}
for(int i=0;i<n;i++)cout<<sum[i]<<endl;
return 0;
}
#include <iostream>
#include <cstdio>
#include <string.h>
#include <math.h>
using namespace std;
int asd(int a,int b){
for(int i=2;i<=a;i++)
{
if(a%i==0&&b%i==0)return true; //找公约数
}
return false;
}
int main()
{
int a1,a2,b1,b2,k;
scanf("%d/%d %d/%d %d",&a1,&a2,&b1,&b2,&k);
double n=(double)a1/a2;
double m=(double)b1/b2;
if(n>m)
{
double temp=n;
n=m;
m=temp;
}
int flag=true;
for(int i=1;i<k;i++)
{
if(!asd(i,k))
{
double x=(double)i/k;
if(x>n&&x<m)
{
if(flag)
{
printf("%d/%d",i,k);
flag=false;
}
else
{
printf(" %d/%d",i,k);
}
}
}
}
}