2015--偶數求和

有一個長度爲n(n<=100)的數列,該數列定義爲從2開始的遞增有序偶數,現在要求你按照順序每m個數求出一個平均值,如果最後不足m個,則以實際數量求平均值。編程輸出該平均值序列。


本題可以用兩層循環,首先計算將數組分爲每m個數一組後還剩餘多少個數是不足m個的,最後對它們單獨求平均值並輸出。
兩層循環中,外層循環控制可以分組的那些數的下標變化,注意循環變量每次要加上每組的個數;內層循環控制每組數字的長度,注意這裏數組下標是固定的,所以每次要從i到i+m。
最後要注意輸出格式,最後一個數後面是沒有空格的,但不能確定這組數是否能剛好分成每m個一組,所以要用flag來控制空格的輸出。

#include<stdio.h>
int a[100];
int main()
{
    int n,m,i,j,k,t,ave,flag,sum=0;
    while (scanf ("%d%d",&n,&m)!=EOF)
    {
        t=n%m,flag=0;
        for (i=0;i<n;i++)
            a[i]=2*(i+1);//初始化數組
        for (i=0;i<n-t;i+=m)
        {
            sum=0;
            for (j=i;j<i+m;j++)
                sum+=a[j];
            ave=sum/m;
            if (flag==1)
                printf (" ");
            printf ("%d",ave);
            flag=1;
        }
        if (t!=0)
        {
            sum=0;
           for (k=n-t;k<n;k++)
            sum+=a[k];
            ave=sum/t;
        printf (" %d\n",ave);
        }
        else
            printf ("\n");

    }
    return 0;
}
發佈了41 篇原創文章 · 獲贊 0 · 訪問量 8106
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章