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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2009, 11:49   #1
f1UZ
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 13
По умолчанию [C'ишка] - Помогите понять кое-какой момент

Проблема заключается в следующем, если я использую циклы то программа работает немного не корректно, по каким причинам, я фуй знает!!!
Первое условие выдает мне нули-нули-нули....

Код:
//---------------------------------------------------------------------------

#include <stdio.h>
#include <conio.h>
#include <math.h>

#pragma hdrstop
#pragma argsused

//---------------------------------------------------------------------------

void main()
{

	clrscr();

	float p, b, c, r, x, r1, r2, r3, E = 2.71;

	printf("Introduceti valoare pentru P = 0.771: ");
	scanf("%f", &p);
	printf("\n");
	printf("Introduceti valoare pentru B = 73.89: ");
	scanf("%f", &b);
	printf("\n");
	printf("Introduceti valoare pentru C = -35.2: ");
	scanf("%f", &c);

	for (r = 0; r <= 0.9f; r += 0.1f)
	{
		for (x = 3; x <= 0.7f; x -= 0.1f)
		{
			if (r && x < 1)
			{
				r1 = p / x + log(b * pow(x, 2)) + r * c;
			}
			else if (1 <= r || x <= 2)
			{
				r2 = r - pow(E, - p * x) * c * x - b * r;
			}
			else if (x && r > 2)
			{
				r3 = p * r * c * sin(pow(x - E, r - x));
			}
		}
	}

	printf("\n");
	printf("Rezultatul pentru 1 expresie: %f ",   r1);
	printf("\n");
	printf("Rezultatul pentru a 2 expresie: %f ", r2);
	printf("\n");
	printf("Rezultatul pentru a 3 expresie: %f ", r3);

	getch();
	
}

//---------------------------------------------------------------------------
Если убрать циклы и присвоить значения либо ввести самому, то программа выдает правильный результат, то есть, используется первое условие, подсчитывается и выводит результат.

Код:
void main()
{

	clrscr();

	float p, b, c, r, x, r1, r2, r3, E = 2.71;

	printf("Introduceti valoare pentru P = 0.771: ");
	scanf("%f", &p);
	printf("\n");
	printf("Introduceti valoare pentru B = 73.89: ");
	scanf("%f", &b);
	printf("\n");
	printf("Introduceti valoare pentru C = -35.2: ");
	scanf("%f", &c);

			r = 0.9;
			x = 0.7;

	if (r && x < 1)
	{
		r1 = p / x + log(b * pow(x, 2)) + r * c;
			} 
			else if (1 <= r || x <= 2)
	{
		r2 = r - pow(E, - p * x) * c * x - b * r;
	}
			else if (x && r > 2)
	{
		r3 = p * r * c * sin(pow(x - E, r - x));
	}

	printf("\n");
	printf("Rezultatul pentru 1 expresie: %f ",   r1);
	printf("\n");
	printf("Rezultatul pentru a 2 expresie: %f ", r2);
	printf("\n");
	printf("Rezultatul pentru a 3 expresie: %f ", r3);

	getch();
	
}
Я интересовался у парней, но так толком ничего толкового и не услышал...
Мож кто поможет ? За ранее, буду оч оч сильно благодарен
f1UZ вне форума Ответить с цитированием
Старый 25.09.2009, 12:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Задача какая?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2009, 12:57   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Тут точно такое условие?
for (x = 3; x <= 0.7f; x -= 0.1f)
Может надо:
for (x = 3; x >= 0.7f; x -= 0.1f)
pu4koff вне форума Ответить с цитированием
Старый 25.09.2009, 14:11   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Код:
else if (x && r > 2)
ты уверен, что это выполнится?
counter вне форума Ответить с цитированием
Старый 30.09.2009, 02:11   #5
f1UZ
Пользователь
 
Регистрация: 13.08.2009
Сообщений: 13
По умолчанию

pu4koff ты лучший
- Я немного ошибся, огромное спасибо.

counter
Цитата:
else if (x && r > 2)
Я знаю что оно не выполниться, так поставленна задача...

Последний раз редактировалось f1UZ; 30.09.2009 в 02:22.
f1UZ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите понять код Arassir JavaScript, Ajax 1 12.05.2009 13:00
Помогите пожалуйста не могу понять! Kosoy135 Паскаль, Turbo Pascal, PascalABC.NET 7 28.12.2007 19:08
Как и в какой момент написать обработчик события если БД не доступна Arteom БД в Delphi 8 04.10.2007 12:08
Помогите понять код MaGiCeYe Помощь студентам 1 02.04.2007 19:57