c语言输出不对,但是能过,求解答

P5719 【深基4.例3】分类平均

muyan97 @ 2023-11-09 11:46:14

#include<stdio.h>

int main()

{

    int n,k,a,b;
    double sumA,sumB;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++){
        if(i%k==0){
            sumA +=i;
            a++;
        }else {
            sumB +=i;
            b++;
        }
    }
    printf("%.1lf %.1lf",sumA/a,sumB/b);
}

by TMM233 @ 2023-11-09 12:31:51

@muyan97

#include<stdio.h>

int main()

{

    int n,k,a=0,b=0;
    double sumA,sumB;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++){
        if(i%k==0){
            sumA +=i;
            a++;
        }else {
            sumB +=i;
            b++;
        }
    }
    printf("%.1lf %.1lf",sumA/a,sumB/b);
}

因为评测机内存比较干净,恰好局部变量没有赋初值的时候就是0,而我们直接的电脑往往带着奇怪的初值,所以开局部变量建议赋值


by muyan97 @ 2023-11-09 12:44:44

@TMM233 好的,谢谢大佬指点


|