sudo_rmrf @ 2023-08-05 12:56:59
#include<bits/stdc++.h>
#include<iomanip>
using namespace std;
int main() {
int n, k, a, b, na, nb;
cin >> n >> k;
for (int i=0; i<=n; i++) {
if(a%k==0) {
a=a+i;
na++;
} else {
b=b+i;
nb++;
}
}
cout << fixed << setprecision(1) << a/na <<" "<< b/nb;
return 0;
}
by dingzj2022 @ 2023-08-05 13:20:22
多少分?
by Parrhesiates @ 2023-08-05 13:38:12
@aDecay 不应该判断i%k是否等于0吗
by 123456zzr @ 2023-08-05 13:48:02
把a,b,na,nb初始化为0,循环从1开始,你这个输出我看不明白就用自己习惯的方式了。另外你要不要看看你循环里判断的是什么?然后就OK了@aDecay
#include<bits/stdc++.h>
#include<iomanip>
using namespace std;
int main() {
int n, k, a=0, b=0, na=0, nb=0;
cin >> n >> k;
for (int i=1; i<=n; i++) {
if(i%k==0) {
a=a+i;
na++;
} else {
b=b+i;
nb++;
}
}
printf("%.1f",1.0*a/na);
cout<<" ";
printf("%.1f",1.0*b/nb);
return 0;
}
by a_small_octopus_ball @ 2023-08-12 17:43:28
@aDecay
问题如下(虽然你已经A了):
2.应该用i进行取余
正解如下:
#include<bits/stdc++.h>
using namespace std;
double na,nb;//放在全局变量自动初始化,这里我怕精度不对开了double
int main(){
int n,k,a=0,b=0;//局部变量初始化
cin>>n>>k;
for(int i=1;i<=n;i++){
if(i%k==0){ //用i取余才包含了n以内的全部整数
a+=i;
na++;
}
else{
b+=i;
nb++;
}
}
cout<<fixed<<setprecision(1)<<a/na<<" "<<b/nb;
return 0;
}
就当以后的提醒吧~