c++ - 在数组中查找总计
问题描述
我想通过从单位*价格中查找来找到总计,但它得到 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;
}
解决方案
我看你是初学者。好吧,这里的错误是您的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;
}
另外,只是一个建议,请尝试更好地缩进您的代码。将来会对你有所帮助:)
最好的。
推荐阅读
- python - if else 语句追加到 for 循环中的列表
- c++ - 朋友功能我如何在全球范围内更改他们的成员
- node.js - 我需要帮助修复命令(node.js
- flutter - Flutter 1.17 更新未找到 mobx 依赖项
- javascript - 如何解决在 React js 中创建应用程序时出错
- typescript - 打字稿用初始/默认值初始化类型
- postgresql - id 不使用 SQL 插入在 Postgres 12.2 上自动递增
- javascript - 如何使用 JAVA 提供 HTML/CSS/Javascripts?
- php - 教义错误:预期的字符串结尾,得到“开”
- node.js - Angular 组件中的 Kafka 消费者