Toby


私信TA

用户名:TRr320

访问量:1207

签 名:

待我长发及腰,卧槽,我腰呢

等  级
排  名 28724
经  验 530
参赛次数 0
文章发表 1
年  龄 20
在职情况 学生
学  校 西安财经大学
专  业 网络工程

  自我简介:

我是一只小菜鸟,小菜鸟,我有许多的问题,的问题,就想问问你^~^

TA的其他文章

#include<stdio.h>
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
int i,j=0,sum=0;
int a[n+1],b[n/m+1]; 
for(i=0;i<n;i++)
{
a[i]=2*(i+1);	//公差为2可看作是公差为1在乘以2
sum+=a[i];	//每m项求和
if((i+1)%m==0)  //判断是否已到达m项
{
b[j++]=sum/m;	//把所求平均数赋给另一个数组
sum=0;	//sum初始为0,以便于下一组数求和
}
}

if(i%m!=0)	//判断是否有为满足m项就结束
{
b[j]=0;
for(int k=i%m-1;i-k<=i;k--)     //求余数确定有几个数在m范围内,然后逐个相加
{
b[j]+=a[i-k-1];	//在上一个for循环结尾时i加了一个,在此减去,在减去多出m的个数
}
b[j++]/=i%m;	//对b[j]项求平均数,此处j++是为了与上一个for循环处的j++相对应,以便于下一行for语句确定终止条件
}

for(int k=0;k<j;k++)
printf("%d ",b[k]);	//利用for语句逐个输出平均值
puts("");	//输出完换行
}
return 0;
}

解题思路:第一步:利用for语句对数组进行赋值,并对数组值求和

第二步:在赋值时进行判断是否以满足m个的条件,若满足则求平均值并赋给新的数组储存起来(记着对下一个求和变量初始化)

第三步:判断第二步是否正常结束,若不是正常结束求出这几个数的平均数并储存

第四步:输出所有储存的平均数值

注意事项:由于我没有看其他人的解题思路,外加本身也是菜鸟一枚,代码可能有很多不够优化或者错误请不要在意,另外第一次分享没有经验,再加上时间仓促,注释和思路交代的可能不够清楚,希望大神路过可以指点指点,没有思路的小伙伴希望可以给你提供一点思路,好了,废话不多说了。看代码吧

 

0.0分

1 人评分

  评论区

  • «
  • »