nick


私信TA

用户名:ymx101

访问量:205

签 名:

等  级
排  名 23051
经  验 603
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 家里蹲
专  业

  自我简介:

TA的其他文章

解题思路:可以先判断切割的数量是否大于这个数列的总长度,若不超过这个数列的长度,则调用函数1;若超过则调用函数2。(写的不太好,有可以改正的地方希望大家指出,第一次写这个,还有待提高,嘿嘿O,O||)


注意事项:用数组做,我的思路考虑到数列不能再次切割的时候,应该将while循环中的最后一个数的下标记住,后面求剩余数列时要作为剩余数列的第一个数的下标

参考代码:


#include<stdio.h>

#define N 100 


void getAverge(int n,int m)//超过数列长度调用

{

int i=0,j,sum=0,temp=0,temp1=0,b=0,a[N],count=0;

for(j=0;j<n;j++) //找到所给长度的数列

{

i+=2;

a[j]=i; 

}


temp=m;

temp1=n;


while(m<n) //通过循环计算平均值

{

for(int k=b;k<m;k++,b++)

{

sum+=a[k];

}

printf("%d ",sum/temp);

sum=0;

if((2*m)<n)//判断该数列是否还可以再切割

m=2*m;

else

{

n=n-m;//n值变化使得m>n

break;

}

for(int c=m;c<temp1;c++) //利用本次循环计算出剩余数列平均值

{

sum+=a[c];

count++;

}

printf("%d ",sum/count);

}


void getAverge1(int n,int m)//不超过数列长度调用

{

int i=0,sum=0;

for(int j=0;j<n;j++)

{

i+=2;

sum+=i;

}

printf("%d ",sum/n); 

}

int main()

{

int n,m;

while(scanf("%d %d",&n,&m)!=EOF)

{

if(n<m)

{

getAverge1(n,m);

printf("\n"); 

}else{

getAverge(n,m);

printf("\n");

}

}

}


 

0.0分

0 人评分

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

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区