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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 10:57   #1
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
Стрелка Прошу помочь найти ошибку.Текст внутри

Пусть A и B положительные вещественные числа, большие 1, причем A>B.
Cоставить программу для поиска такого наименьшего натурального m, что (B^m)>(m*A);

Код:
#include "stdafx.h"


int main(void)
{
	int m=1;// степень  и множитель m
	float A,//положительное вещественное число А
		B; //положительное вещественное число B
	printf ("Enter A&B...\n");
	printf ("Both Values must be >1 and A>B\n");
	scanf_s ("%f%f",&A,&B);
	//начало проверки подходящих значений для A&B
	if (A<=1 || B<=1 || A<=B)
	{
		printf ("Both Values must be >1 and A>B\n!");
	    printf ("Exit programm...");
		return 0;
	}
    //конец проверки подходящих значений для A&B
	while (pow(B,m)>m*A)
	{
		m++;
		printf ("m=%f\n",m);
		
	}
    
	return 0;
}
Math.h подключен, если чего просто в тексте данной программы его нет.

Почему не выполняется программа, при вводе допустим 8 и 7, выполняется только проверка на условие, а дальше "Нажмите любую клавишу для выхода"
Почему такая штука происходит, где я неправ?
BackSlash вне форума Ответить с цитированием
Старый 21.12.2009, 11:47   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Попробуйте
Код:
if (A<=1.0 || B<=1.0 || A<=B)
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 21.12.2009 в 12:07.
Sweta вне форума Ответить с цитированием
Старый 21.12.2009, 11:55   #3
BackSlash
Пользователь
 
Регистрация: 15.12.2009
Сообщений: 39
По умолчанию

Да нет, это проверка условия, она и там и у Вас правильная.

Такое впечатление что у меня в программе вот этой части
Код:
//конец проверки подходящих значений для A&B
	while (pow(B,m)>m*A)
	{
		m++;
		printf ("m=%f\n",m);
		
	}
нет и впомине
то есть при вводе верных значений, программа завершается...
А должна считать значение m

Если я неправильно написал, то поправьте меня

Последний раз редактировалось BackSlash; 21.12.2009 в 12:09.
BackSlash вне форума Ответить с цитированием
Старый 21.12.2009, 12:13   #4
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

вот правильный код
Код:
#include <math.h>
#include <iostream>

using namespace std;

int main()
{
	int m;
	float A, B;
	printf("Enter A and B (A > 1, B > 1 and A > B)\n");
	scanf("%f%f", &A, &B);
	if (A <= 1 || B <= 1 || A <= B)
	{
		printf ("Inadmissible values of variables. Press any key to exit\n");
		system("pause");
		return 0;
	}
	m = 1;
	while (!(pow(B, m) > m * A))
		m++;
	printf ("m = %d\n", m);
	system("pause");
	return 0;
}
Alex_FF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу найти ошибку в программе Ант@н Помощь студентам 0 22.11.2009 10:11
Не могу найти ошибку в программе. Прошу помощи Chaplen89 Общие вопросы Delphi 0 27.10.2009 17:31
Прошу помощи. Нада проверить правильность составления проги. И помочь исправить ошибку Ascor Общие вопросы C/C++ 4 03.06.2008 10:54