Irisss @ 2022-12-05 13:42:18
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
float sum1;
float sum2=0;
float pin1,pin2;
for(int i=1;i<=n;i++){
if(i%k==0){
sum1+=i;
pin1++;
}
if(i%k!=0){
sum2+=i;
pin2++;
}
}
// cout<<sum2<<endl;
printf("%.1f",sum1/pin1);
cout<<" ";
if(sum2==0){
cout<<"0.0";
return 0;
}
if(sum2!=0){
printf("%.1f",sum2/pin2);
}
return 0;
}
下载数据带进程序发现是对的。
by Powerful_25 @ 2022-12-05 13:45:43
@Irisss pin1
和pin2
没赋初值。
by ztj000 @ 2022-12-05 13:48:51
sum1,pin1,pin2都要定义为0
by HYdroKomide @ 2022-12-05 13:49:47
这种变量建议在主函数外定义,自动赋初值为
by Powerful_25 @ 2022-12-05 13:51:01
@Irisss 还有sum1
未赋初值以及或许精度问题(?)
by Powerful_25 @ 2022-12-05 13:53:17
@Irisss 另外建议下次不要只是带入程序,而是在代码间加调试输出然后运行一下捏
by ztj000 @ 2022-12-05 13:53:31
@sherry0218 float精度够了
by Powerful_25 @ 2022-12-05 13:54:03
@ztj000 哦哦谢谢
by Irisss @ 2022-12-05 14:00:46
@sherry0218 赋值之后仍然有三个点数据不对,另外我想请问一下什么叫在代码间加调试输出,不明白是什么意思。
by donnieguo @ 2022-12-05 14:05:44
@Irisss 就是说在循环或判断中加入一句输出语句(内容随便)看有没有输出,输出就代表走进去了,没输出就代表没走进去。
by Irisss @ 2022-12-05 14:10:58
@donnieguo 哦我明白了,其实这种语句,我在调试的时候经常用,只是提交的时候不习惯打斜杠就直接删除了