Mxolq_Icb @ 2023-02-03 21:41:14
#include<iostream>
#include<iomanip>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{//sqrt- pow+ fixed<<setprecision(num)/
int n,k,a[10001],b[10001],count1=0,count2=0,sum1,sum2;
double ans1,ans2;
cin>>n>>k;
for(int i=1;i<=n;i++){
if(i%k==0){//a
i=a[count1];
count1++;
}else{//b
i=b[count2];
count2++;
}
}
//////////////////////////
for(int i=1;i<=count1;i++){
sum1+=a[i];
}
for(int i=1;i<=count2;i++){
sum2+=b[i];
}
ans1=sum1/count1;ans2=sum2/count2;
cout<<fixed<<setprecision(1)<<ans1;
cout<<fixed<<setprecision(1)<<ans2;
return 0;
}
by DreamLand_zcb @ 2023-02-03 21:58:15
@Mxolq_Icb ab数组定义到全局
by ____someone____ @ 2023-02-03 21:58:32
@Mxolq_Icb 赋值语句写反了
i=a[count1];
改为
a[count1]=i;
其他同理;
而且,后面两个循环的 <=
改为 <
,然后
by Mxolq_Icb @ 2023-02-03 22:13:47
@someone 为什么i=0
by Mxolq_Icb @ 2023-02-03 22:14:38
@someone 我前面i=1
啊
by Mxolq_Icb @ 2023-02-03 22:18:15
@someone 改了以后是这样
#include<iostream>
#include<iomanip>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{//sqrt- pow+ fixed<<setprecision(num)/
int n,k,a[10001],b[10001],count1=0,count2=0;
double ans1,ans2,sum1,sum2;
cin>>n>>k;
for(int i=1;i<=n;i++){
if(i%k==0){//a
a[count1]=1;
count1++;
}else{//b
b[count2]=1;
count2++;
}
}
//////////////////////////
for(int i=0;i<count1;i++){
sum1+=a[i];
}
for(int i=0;i<count2;i++){
sum2+=b[i];
}
ans1=sum1/count1;ans2=sum2/count2;
cout<<fixed<<setprecision(1)<<ans1<<" ";
cout<<fixed<<setprecision(1)<<ans2;
return 0;
}
by ____someone____ @ 2023-02-03 22:21:42
@Mxolq_Icb 因为你的
by ____someone____ @ 2023-02-03 22:22:21
@Mxolq_Icb 应该没问题了,你交一下试试看
by ____someone____ @ 2023-02-03 22:23:13
@Mxolq_Icb 哦,还有一个就是
by ____someone____ @ 2023-02-03 22:24:54
你的 a 数组和 b 数组下标都是从 0 开始的
by Mxolq_Icb @ 2023-02-03 22:28:56
@someone 不RE,但WA了https://www.luogu.com.cn/record/101372584