簡體   English   中英

從文件中讀取並在C中打印雙倍比率

[英]reading from a file and printing double ratios in C

我有一系列數字的文件:9 1 2 1

我試圖找出比率subsum / sum

#include <stdio.h>
void main()
{ 
    double subSum = 0;
    double sum    = 13;
    double num    = 0;
    double x      = 0;
    FILE*  file   = fopen("text.txt", "r");

    while (fscanf(file, "%f", &num) > 0)
    {
        subSum = subSum + num;
        x      = subSum / sum;

        printf("%f",x);
        printf("\n");
    }

    fclose(file);
}

但它保持打印零(0.00000000000)為什么???

您將double變量的地址傳遞給scanf()格式,該格式已被告知期望float的地址。

while (fscanf(file, "%f", &num) > 0)

應該:

while (fscanf(file, "%lf", &num) > 0)
#include<stdio.h>
void main()
{ 
double subSum=0;
double sum=13;
int num=0;
double x=0;
FILE *file = fopen("text.txt", "r");
while(fscanf(file, "%d", &num) > 0){
    subSum=subSum+(double)num;
    x= subSum / sum;
    printf("%f",x);
    printf("\n");
 }
fclose(file);
}

如果你的C編譯器支持“%LF”,則:

 float  num;
 double dnum;

 // etc.

 scanf("%f", &num);

 //etc.

 dnum = (double) num;  // use dnum in calculations

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM