首页 > 解决方案 > 在数组中查找总计

问题描述

我想通过从单位*价格中查找来找到总计,但它得到 0.00,虽然它应该是 12,640.00,所以有人知道我该怎么做吗?

这是代码

#include <stdio.h>

int main()
{
    FILE *in;

    char id[20][15];  // 20 persons   
    char des[20][15];
    int unit[30];
    float price[30];
    float sum = 0.0, total = 0.0;
    int i=0, j;

    in = fopen("price.txt", "r") ;
    if ( in == NULL )
    {
        printf( "Could not open file test.c" ) ;
        return 1;
    }

    while(!feof(in))
    {
        fscanf(in, "%s %s %d %f", &id[i], &des[i], &unit[i], &price[i]);
        i++;
    }

    printf("No. ID Descripton Price/Unit Unit Total Amount\n");
    for(j=0; j < i ;j++)
       printf("%d. %s %s %d %0.2f %0.2f \n",j, id[j], des[j], unit[j], price[j], unit[j]*price[j]);
    sum = unit[j]*price[j];
    total += sum;
    printf("Grand Total %0.2f",total);
    return 0;
}

标签: c++

解决方案


我看你是初学者。好吧,这里的错误是您的for循环实际上从未计算过sum 默认情况下,for循环仅读取它下面的行,除非有任何代码括在花括号{} 中跨越多行。

for(j=0; j < i ;j++)
{    
    printf("%d. %s %s %d %0.2f %0.2f \n",j, id[j], des[j], unit[j], 
    price[j], 
    unit[j]*price[j]);
    sum = unit[j]*price[j];
    total += sum;
}

另外,只是一个建议,请尝试更好地缩进您的代码。将来会对你有所帮助:)

最好的。


推荐阅读