fm66
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здрасте. Помогите решить задачку на С++, пожалуйста. Условие задачи такое: Вычислить значения z, соответствующие каждому значению x (xn<= x <=xk, шаг изменения x равен dx ) по формуле (a*x), Определить среднее арифметическое положительных значений z. Контрольный расчет произвести при a=5.27, xn=1, xk=10, dx=0,5. На экран выводить все значения x и z. Формулу сейчас для упрощения задачи я поставил такую, если заработает адская программка, тогда реальную прикручу. Так вот, нашел кусок кода, немного доработал, и оно работает в среде dev-C++: ----------------------------------------------------------------------------------- #include <stdio.h> #include <math.h> #include <iostream> int main(){ double Xn, Xk, dX, a, z; double sum_z; // summa poloj z double n; // s4et4ik z double average; // srednee arif z sum_z == 0; n == 0; average == 0; printf ("Enter Xn, Xk, dX, a \n"); scanf("%lf%lf%lf%lf", &Xn, &Xk, &dX, &a); printf("..........................\n"); printf("| X | Z |\n"); printf("..........................\n"); for ( double x = Xn; x <= Xk; x += dX ){ if (x > 0) z = a * x; if (z > 0) sum_z += z , n++ , average = sum_z / n; if (a > 0) printf("|%9.2lf |%9d |\n", x, (int) z); else printf("|%9.2lf |%9.2ld |\n", x, z); // } //printf(".....................\n"); printf(" crednee arifmet z = \n", average ); } system("PAUSE"); return 0; } -------------------------------------------------------------------------------------------------- только есть два момента: если убрать округление z до целых ((int) z), начинает считать неправильно, а нам и нужно считать до сотых, а задана как 5,27; и второе, счетчик почему-то не работает, средняя величина не считается, а компилируется без ошибок. Если кто знает, подскажите, как это можно поправить. | Всего записей: 645 | Зарегистр. 29-11-2007 | Отправлено: 16:36 03-12-2007 | Исправлено: fm66, 22:18 03-12-2007 |
|