[英]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.