linlin6 @ 2022-11-10 22:34:48
#include<stdio.h>
int main()
{
int n, k, i, a[10000];
float sum1=0,sum2=0;
scanf("%d %d", &n, &k);
int p = 0;
for (i = 0; i < n; i++)
{
a[i] = i + 1;
if (a[i] % k == 0)
{
sum1 = sum1 + a[i];
p++;
}
}
sum1 = sum1 / p;
p = 0;
for (i = 0; i < n; i++)
{
a[i] = i + 1;
if (a[i] % k != 0)
{
sum2 = sum2 + a[i];
p++;
}
}
sum2 = sum2 / p;
printf("%.1f %.1f\n", sum1, sum2);
return 0;
}
by zkmyyy @ 2022-12-16 14:35:33
@linlin6 问题:第一个循环i从‘1’开始之后i<=n即可 (这样就不用写"a[i]=i+1"),之后是第二个循环直接用“a[i]”即可,之后就AC了。
#include<stdio.h>
using namespace std;
int main()
{
int n, k, i, a[1000000];
double sum1=0,sum2=0;
scanf("%d %d", &n, &k);
int p = 0;
for (i = 1; i <= n; i++)
{
a[i] = i;
if (a[i] % k == 0)
{
sum1 = sum1 + a[i];
p++;
}
}
sum1 = sum1 / p;
p = 0;
for (i = 1; i <= n; i++)
{
if (a[i] % k != 0)
{
sum2 = sum2 + a[i];
p++;
}
}
sum2 = sum2 / p;
printf("%.1lf %.1lf\n", sum1, sum2);
return 0;
}
注:
by zkmyyy @ 2022-12-16 14:37:29
刚刚"注1"写错了:数组尽量开大一点