STONEONE @ 2024-12-16 16:45:49
int n,k; double a[1000] = {0}; double b[1000] = {0}; double A=0,B=0; int c=0,d=0;
scanf("%d %d",&n,&k);
int i;
for(i=0;i<n;i++)
if((i+1)%k==0){
a[c]=i+1;
c++;
}
else{
b[d]=i+1;
d++;
}
for(i=0;i<c;i++)
{
A += a[i];
}
for(i=0;i<d;i++)
{
B += b[i];
}
printf("%.1f %.1f",c>0 ? A/c : 0, d>0 ? B/d : 0);
return 0;
by markeoeitwupp @ 2024-12-16 17:00:32
死因:数组小了
#include <bits/stdc++.h>
using namespace std;
int n,k; double a[10000] = {0}; double b[10000] = {0}; double A=0,B=0; long long c=0,d=0;
int main(){scanf("%d %d",&n,&k);
int i;
for(i=0;i<n;i++)
if((i+1)%k==0){
a[c]=i+1;
c++;
}
else{
b[d]=i+1;
d++;
}
for(i=0;i<c;i++)
{
A += a[i];
}
for(i=0;i<d;i++)
{
B += b[i];
}
printf("%.1f %.1f",c>0 ? A/c : 0, d>0 ? B/d : 0);
return 0;
}
1000不够10000存