alex5161
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору fm66 Да вообщем-то, все нормально. Только счетчик (логически) должен быть int, неправильно %9.2ld для распечатки double z, ну и в начале вместо присвоения ты чего-то сравниваешь. Ну и среднее арифметическое незачем выводить в цикле А так я прогнал твою прогу, подкоректировав, - все нормально считает без перевода z в интежер, и с 'плавающим' счетчиком. У тебя скорей всего не счет был неправильный, а принтф() наводила беспорядок неправильной спецификацией, думаю даже в памяти, не только в распечатке: Код: #include <stdio.h> #include <math.h> #include <iostream> int his_main(){ double Xn=1, Xk=10, dX=1, //0.5, a=1, //5.27, z=0; double sum_z=0; // summa poloj z double n=0; // s4et4ik z double average=0; // srednee arif z /* 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; printf("|%9.2lf |%9.2lf | n=%d\n", x, z, (int)n); //printf("|%9.2lf |%9.2ld |\n", x, z); // } } //printf(".....................\n"); printf(" crednee arifmet z = %f\n", average ); system("PAUSE"); return 0; } |
| Всего записей: 1446 | Зарегистр. 26-03-2002 | Отправлено: 16:27 04-12-2007 | Исправлено: alex5161, 16:39 04-12-2007 |
|