дана структура с перечнем цены, веса и колличества (неких лекарств)... эл-ты можно добавлять и удалять... подсчитать надо сумарное и среднее значение цены, веса и колличества... сумарное подсчитать выходит, а среднее -нет...
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;
просто это порядочный номер препарата... в задании написано сумарное колличество препаратов... я так подумала... что сумировать их порядочные номера это как-то не очень...
эхь... вроде считает... спс
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.