Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ вычесление среднего кол-ва

Автор: Jerry 30.10.2006 1:53

дана структура с перечнем цены, веса и колличества (неких лекарств)... эл-ты можно добавлять и удалять... подсчитать надо сумарное и среднее значение цены, веса и колличества... сумарное подсчитать выходит, а среднее -нет...

 
void calc(apteka* stdar[])
{
float S_price=0, S_wght=0, S_numb=0;
int aver=0;
for (int i=0; i<nbofst; i++)
{
S_price=S_price+stdar[i]->price;
S_wght=S_wght+stdar[i]->weight;
S_numb=stdar[i]->number;
aver++;
}
printf("summary price %.0f weight preparatov %.0f summary number %.0f \n",S_price, S_wght, S_numb);
//вычесление среднего колличества
S_price=S_price/aver;
S_wght=S_wght/aver;
S_numb=S_numb/aver;
printf("average price %.2f weight preparatov %.2f average number %.2f \n",S_price, S_wght, S_numb);

};


Автор: volvo 30.10.2006 1:57

Цитата
сумарное подсчитать выходит, а среднее -нет...
Что значит "нет"? Ты же считаешь... Значения неправильные получаются, или что?

Автор: Jerry 30.10.2006 2:03

да... оно на среднее не похоже... или у меня неправильное представление о среднем значении...

Автор: volvo 30.10.2006 2:09

Не знаю... Должно вроде все вычисляться правильно... Хотя я не совсем понимаю, зачем тебе понадобилась лишняя переменная: aver? Она же всегда будет равна nbofst, если я ничего не упустил?

Можешь попробовать вот так:

S_price = S_price/(double)aver;

и заодно поменять описание float на double (так надежнее и быстрее), хотя я не думаю, что это изменит получаемые значения...

Еще одно заметил:
S_numb=stdar[i]->number;
это опечатка или это на самом деле так делается? Тогда непонятно, зачем? Там же будет только последнее значение, все остальные потеряются...

Автор: Jerry 30.10.2006 2:16

S_numb=stdar[i]->number;


просто это порядочный номер препарата... в задании написано сумарное колличество препаратов... я так подумала... что сумировать их порядочные номера это как-то не очень...

эхь... вроде считает...
спс