为什么我的产品平均成本为0? //程序编写人:Andre Chitsaz zadeh //程序编写日期:2012年7月10日 //程序计算多个图书订单的图书成本。 //使用多个函数编写的程序。 #包括 #定义尺寸5 void inputData(); 作废处理数据(浮动成本[]); 浮动成本[5]; 浮动分拣成本[5]; int main() { inputData(); 处理数据(成本); } void inputData() { int i=0; printf(“\n请输入五种产品成本。\n”); 而(i
为什么我的产品平均成本为零?就我所知,我所有的变量都声明为float?我试过各种各样的组合,但我似乎无法让它发挥作用。我真的很感谢你的帮助为什么我的产品平均成本为0? //程序编写人:Andre Chitsaz zadeh //程序编写日期:2012年7月10日 //程序计算多个图书订单的图书成本。 //使用多个函数编写的程序。 #包括 #定义尺寸5 void inputData(); 作废处理数据(浮动成本[]); 浮动成本[5]; 浮动分拣成本[5]; int main() { inputData(); 处理数据(成本); } void inputData() { int i=0; printf(“\n请输入五种产品成本。\n”); 而(i,c,C,为什么我的产品平均成本为零?就我所知,我所有的变量都声明为float?我试过各种各样的组合,但我似乎无法让它发挥作用。我真的很感谢你的帮助 //Program Written By: Andre Chitsaz-zadeh //Program Written On: 10/7/12 //Program calculates book cost for multiple book orders. //Program written using multiple functions. #incl
//Program Written By: Andre Chitsaz-zadeh
//Program Written On: 10/7/12
//Program calculates book cost for multiple book orders.
//Program written using multiple functions.
#include <stdio.h>
#define SIZE 5
void inputData();
void processingData(float costs[]);
float costs[5];
float sortedCosts[5];
int main()
{
inputData();
processingData(costs);
}
void inputData()
{
int i = 0;
printf("\nPlease enter five products costs.\n");
while (i < 5)
{
scanf("%d", &costs[i]);
i = i + 1;
}
}
void processingData(float costs[])
{
int i;
int j;
float sum = 0.00f;
float average = 0.00f;
for (i = 0; i < 4; ++i)
{
int j, min, temp;
min = i;
for (j = i + 1; j < 5; ++j)
if (costs[j] < costs[min])
min = j;
temp = costs[i];
costs[i] = costs[min];
costs[min] = temp;
}
for (i = 0; i < 5; i++)
for (j = 0; j < 5; j++)
sortedCosts[i] = costs[i];
for (i = 0; i < 5; ++i)
sum += costs[i];
average = sum / 5;
printf("Product Cost Average = %.2f\n", average);
}
cost[i]
在您的程序中属于float
类型,而不是int
使用%f
转换规范读取浮点值
此外:
您的temp
值属于int
类型,但costs[i]
属于float
类型。我认为这不是故意的
cost[i]
在您的程序中属于float
类型,而不是int
使用%f
转换规范读取浮点值
此外:
您的temp
值属于int
类型,但costs[i]
属于float
类型。我不认为这是故意的。使用scanf中的“%f”修饰符获得浮点值,而不是“%d”
还有,你
temp = costs[i];
但在整个代码中使用5,而不是大小。使用大小来减少出现错误的可能性
这没有什么问题
但这是更常见的书面形式
i = i + 1;
使用scanf中的“%f”修饰符获取浮点值,而不是“%d”
还有,你
temp = costs[i];
但在整个代码中使用5,而不是大小。使用大小来减少出现错误的可能性
这没有什么问题
但这是更常见的书面形式
i = i + 1;
了解您需要用代码实现什么是很有用的。顺便说一句,有几个错误。一遍又一遍,UB使用扫描。。。嘿,伙计们,你们在问/做之前没有读过一些C标准吗?知道你们需要用代码实现什么是很有用的。顺便说一句,有几个错误。一遍又一遍,UB使用扫描。。。嘿,伙计们,你们在问/做之前没有读过一些C标准吗?谢谢,我也想知道为什么我的平均值略有下降,但你们用我的温度变量犯的错误修复了它!你也很快,谢谢!谢谢,我还想知道为什么我的平均值略有下降,但你用我的临时变量犯的错误修复了它!你也很快,谢谢!
i++;