为什么输入负数循环没有停止

img


为什么输入负数循环没有停止
编程疑惑,同学的都能运行,我的却出问题

%lf改为%f

因为第11行的%lf这里错了,变量num为float类型,用scanf()函数读取输入存入float类型的num变量中,需要使用%f,而不是%lf;然后如果是计算整数的平均值,那个n直接用count赋值即可,需要减去一,count里面即正整数的数量,修改如下:

#include <stdio.h>

int main(void){
    
    float num=0;
    float sum=0;
    float average=0;
    int count =0,n=0;
    
    do{
        printf("Give a positive real number (negative will stop)");
        scanf("%f",&num);
        if(num>0){
            sum+=num;
            count++;
        }else{
            break;
        }
        
    }while(num>=0);
    
    n=count-1;
    average=1.0*sum/n;
    printf("Average is %.2f\n",average);
    return 0; 
} 

img