想吃两颗西柚 2023-10-28 21:47 采纳率: 25%
浏览 12

数组 循环结构 洛谷题单

给定 n 和 k,将从 1 到 n 之间的所有正整数可以分为两类:A 类数可以被 k 整除(也就是说是 k 的倍数),而 B 类数不能。请输出这两类数的平均数,精确到小数点后 1 位,用空格隔开。数据保证两类数的个数都不会是 0。
输入 100 16 输出结果 56.0 50.1

#include<stdio.h>
int main (){
    int n,k,i,j,m,l,h;
    scanf("%d%d",&n,&k);
        int t[n+1];
    int a;
     a=1;
    for(i=1;i<=n;i++){
        t[i]=a;
        a++;
    }
    int sum1=0,sum2=0;
    m=0;
    l=0;
    for(i=1;i<=n;i++){
        if(t[i]%k==0){
            j=t[i];
            sum1+=j;
            m++;
        }
        else{
            h=t[i];
            sum2+=h;
            l++;
        }
    }
    
    double p1,p2;
    p1=sum1/m;
    p2=sum2/l;
    printf("%.1lf %.2lf",p1,p2);
    return 0;
}
求帮忙看看为啥我的结果是56.0  50.0

  • 写回答

3条回答 默认 最新

  • 想吃两颗西柚 2023-10-28 21:48
    关注

    改一下

    double p1,p2;
        p1=sum1/m;
        p2=sum2/l;
        printf("%.1lf %.1lf",p1,p2);
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月28日