Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2010, 13:45   #1
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию Проблемка с подсчетом в цикле.

Здравствуйте. Толкьо недавно начала изучать С, вот столкнулась с волшебным фокусом компилятора.
Программа считает (вернее должна считать) интеграл на отрезке.
Вот код:
Код:
#include <stdio.h>
#include <conio.h>
#define def 0.0001

int main()
{
	double S, lastS;
	float RecWidth, y, x;
	int RecCount, i;
	S = lastS = RecCount = RecWidth = y = x = i = 0;
	printf("Function 5*x*x - x + 2 on the interval [0,5]\n");
	printf("Definition: %1.4f\n", def);
	printf("------------------------------\n");
	do
	{
	RecCount = RecCount + 50;
	RecWidth = 5 / RecCount;
	lastS = S;
	S = 0; x = 0;
	for (i = 0; i <= RecCount-1; i++)
		{
		x = RecWidth * i;
		y = 5*x*x - x + 2;
		S = S + y * RecWidth;
		}
	printf("Rectangle count: %d   Value of the integral: %6.4f\n", RecCount, S);
	}
	while (S - lastS >= def);
	getch();
}
Проблема в том, что S ни в какую не считается. При прогоне кнопкой F8 видно, что она как было ноль, так и нулем остается на протяжении всей работы цикла.
При чем, если принудительно присвоить S = 10; то все хорошо.

Подскажите, пожалуйста, из-за чего может возникать такая проблема?
Риндера вне форума Ответить с цитированием
Старый 20.10.2010, 14:15   #2
sergey.d
Пользователь
 
Регистрация: 23.08.2010
Сообщений: 98
По умолчанию

Судя по всему, проблема здесь:
Код:
RecWidth = 5 / RecCount;
Это целочисленное деление с отбрасыванием дробной части. Надо бы хотя бы так:
Код:
RecWidth = 5.0 / RecCount;
sergey.d вне форума Ответить с цитированием
Старый 20.10.2010, 14:26   #3
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

И правда, теперь работает, спасибо!
Сейчас вспомнила, что читала об этом в книжке по С )))
Вот уж правда важен каждый нолик и каждая точка... >_< Страшный язык)
Риндера вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с подсчетом SerG1ON Microsoft Office Excel 0 04.02.2010 14:55
Сортировка подсчетом без дополнительного массива Lussee Помощь студентам 0 06.01.2010 13:47
Сортировка подсчетом (delphi) Лексей Помощь студентам 10 05.12.2009 16:33
OpenGL проблема с подсчетом FPS AS10 Мультимедиа в Delphi 4 15.09.2009 21:17
Помогите пожалуйста!(Pascal) с подсчетом букв Tubus Помощь студентам 2 15.12.2008 20:27