「已注销」 2022-08-17 19:35 采纳率: 90.2%
浏览 22
已结题

HDU2015偶数求和

问题遇到的现象和发生背景 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。对于每组输入数据,输出一个平均值序列,每组输出占一行。
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int n,m,sum=0,i;
    float t;
    while(scanf("%d %d",&n,&m)==2&&n<=100){
        int c=0;
        int *a=(int *)malloc(sizeof(int)*m);
        memset(a,0,sizeof(int)*m);
        a[0]=2;
        sum=sum+a[0];
        for(i=1;i<m;i++){
            c++;
            a[i]=a[i-1]+2;
            sum=sum+a[i];
            if(i==m-1){
            a[0]=a[i]+2;
            i=1;
            t=(float)sum/m;
            printf("%.2f ",t);
            sum=a[0];
            }
            if(c==n-1)break;
        }
    if(i!=0){
        t=(float)sum/i;
        printf("%.2f",t);
    }    
    printf("\n");
    }
    return 0;
}

运行结果及报错内容
我的解答思路和尝试过的方法 直接给a[0],i从1开始遍历,a[i]=a[i-1]+2,计算m-1次后进入if,把当前项+2重新赋给a[0],计算平均值
我想要达到的结果 求指导这串代码哪里有问题,感谢!
  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-08-17 21:38
    关注

    供参考:

    #include <stdio.h>
    int main(void)
    {
        int n, m;
        while(scanf("%d%d", &n, &m) != EOF) {
            int sum=0, a=2, cnt=0, i;
            for(i=1; i<=n; i++) {
                sum += a;
                a += 2; // 第1项为2,公差为2
                if( i % m == 0) {// 求和项达到m项,则计算平均值并输出
                    printf(cnt++ == 0 ? "%d" : " %d", sum / m);
                    sum = 0; // 和清零
                }
            }
                            // 最后一个平均值:
            if(n % m == 0)  //如果n是m的倍数则最后一项已经输出,
                printf("\n");//换行。
            else
                printf(cnt == 0 ? "%d\n" : " %d\n", sum / (n % m));//否则输出最后一项。
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月25日
  • 已采纳回答 8月17日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置