标题:数组分段求和
只看楼主
zzmx
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2020-2-4
结帖率:75%
已结贴  问题点数:14 回复次数:3 
数组分段求和
假设数组a有1152个数,我想按照顺序每100个数算一个和,求一个平均值,该如何实现?
搜索更多相关主题的帖子: 平均值 个数 数组 分段 求和 
2021-09-15 10:24
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:101
专家分:643
注 册:2021-7-1
得分:4 
供参考:
程序代码:
//假设数组a有1152个数,我想按照顺序每100个数算一个和,求一个平均值,该如何实现?

//假设数组a有1152个数,我想按照顺序每100个数算一个和,求一个平均值,该如何实现?

#include<stdio.h>
#include<time.h>
#include <stdlib.h>
int main()
{
    int a[1152], i, k, c, s[13] = { 0 };
    srand((unsigned int)time(NULL));
    for (i = 0, k = 0, c = 0; i < 1152; i++) {
        a[i] = rand() % 150 + 1;
        s[k] += a[i];
        c++;
        if (c == 100) {
            k++;
            c = 0;
        }
    }
    for (i = 0; i < k; i++){
        printf(" %c %d",i==0?'(':'+', s[i]);
        s[12] += s[i];
    }
    printf(" ) / %d = %d \n",k, s[12] / k);
    return 0;
}
2021-09-15 11:19
自由而无用
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:61
专家分:1456
注 册:2021-8-9
得分:4 
//online parser: https://www.bccn.net/run/
程序代码:
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    char c[12][100];
    int i, j, sum;
    
    memcpy(c, main, 1152);
    
    for(i = 0; i < 12; i++) {
        for(j = 0, sum = 0; j < sizeof(c[i]); j++) sum += c[i][j];
        printf("%02d: sum = %d, avr = %d\n", i + 1, sum, sum / 100);
    }
    
    return 0;
}


[此贴子已经被作者于2021-9-15 17:34编辑过]

2021-09-15 17:16
我善治鬼
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:107
专家分:181
注 册:2015-2-16
得分:4 
程序代码:

#include <stdio.h>

#define N 1152

int main()
{
    int sum = 0;
    for (int i = 0, j; i < N; i++) {
        sum += i;
        j = (i + 1) % 100;
        if (j == 0 || i == N - 1) {
            if (j == 0) j = 100;
            printf("%d / %d = %d\n\n", i, j, sum / j);
            sum = 0;
        }
        else printf("%d + ", i);
    }
    return 0;
}


2021-09-17 14:13
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:4 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    unsigned int num_all,num_one,num_current,group,i,j;
    float *a,sum;
    printf("请输入总个数及每组个数:");
    scanf("%u %u",&num_all,&num_one);
    a=malloc(num_all*sizeof(float));

    srand((unsigned int)time(NULL));    //模拟数据
    for(i=0; i<num_all; i++)
        *(a+i)=rand();

    group=num_all/num_one;
    if(num_all%num_one!=0)
        group+=1;

    for(j=0; j<group; j++)
    {
        sum=0;
        if(j+1==group)
        {
            if(num_all%num_one!=0)
                num_current=num_all%num_one;
        }
        else
        {
            num_current=num_one;
        }

        for(i=0; i<num_current; i++)
        {
            sum+=*(a+j*num_one+i);
        }
        printf("第%u组和为%.2f,平均值为%.2f\n",j,sum,sum/num_current);
    }

    free(a);
    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2021-09-19 20:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-506851-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.368048 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved