NCLEO


私信TA

用户名:NCLEO

访问量:2927

签 名:

黄袍加身,递王之相

等  级
排  名 2162
经  验 2358
参赛次数 0
文章发表 6
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

我不生产代码,我只是代码的搬运工

解题思路:

注意事项:

若不够M个数,按实际数量求平均值,是以剩下多少个数来求平均值。

使用sn中途的值不能清0;


参考代码:

#include<stdio.h>
int function (int n,int m);
int main()
{
	int m,n;
	while((scanf("%d%d",&n,&m))!=EOF)
	{
		function(n,m);			
	}
	return 0;
}
int function (int n, int m)
{
	int i,j,sum=0;
	int sn=0,temp=0,t;//每次进入函数清0
	while(temp<n)
	{
		if(n-temp>=m)//只有剩下的数量大于或等于m进入
		{
			sum=0;//保证不会叠加重复值
			for(i=0;i<m;i++)//求m个数的和
			{
				sn+=2;//依次加2,变为数列中的每一个数,sn不能清0
				sum+=sn;//求和 
				temp++;//记录加到第几个数
			}
			printf("%d ",sum/m);//输出平均值
		}
		else
		{
			sum=0;
			t=n-temp; //剩余数列长度不大于m,按实际长度求
			for(j=0;j<t;j++)
			{
				sn+=2;
				sum+=sn;
				temp++;
			}
			printf("%d \n",sum/t);
		}
	}
	return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区