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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2012, 16:53   #1
Alina111
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 40
Вопрос Почему не идет построение?

Составить программу с использованием цикла For.
y=(x/(x*x-1))/log3(x+2)
Код:
#include <stdio.h>
#include <math.h>

void main()
{
   float a,b,s,x,n,h,y,max;
   scanf("%f%f",&a,&b);
   int k=0;n=10;
   h=(b-a)/n;
   s=0;

   for (int i=0;i<=n;i++)
	{
	 x=a+i*h;
	 {
		if (x!=1&x!=-1&x>-2)
		  {k++;
		   y=x/(x*x-1)+log(x+2)/log(3);
		   printf("x=%7.6f y=%7.6f\n",x,y);
		   if (k==1)
			max=y;
		       else {
			      if (y>max)
				max=y;
				      }
		    s=s+y;}
		else printf("net znach v tochke\n");
				       }}
     if (k==0)

	printf ("func ne opr na otr");

       else {s=s/k;
	     printf("s=%5.2f max=%5.2f\n",s,max);}}

Последний раз редактировалось Alina111; 23.05.2012 в 17:21.
Alina111 вне форума Ответить с цитированием
Старый 23.05.2012, 19:44   #2
Kolaps
Пользователь
 
Регистрация: 21.04.2012
Сообщений: 15
По умолчанию

Код:
#include <stdio.h>
#include <math.h>

main()
{
   float a,b,s,x,n,h,y,max;
   scanf("%f%f",&a,&b);
   int k=0,i;
   n=10;
   h=(b-a)/n;
   s=0;

   for (i=0;i<=10;i++)
	{
	 x=a+i*h;
	 {
		if (x!=1&x!=-1&x>-2)
		  {k++;
		   y=x/(x*x-1)+log(x+2)/log(3);
		   printf("x=%7.6f y=%7.6f\n",x,y);
		   if (k==1)
			max=y;
		       else {
			      if (y>max)
				max=y;
				      }
		    s=s+y;}
		else printf("net znach v tochke\n");
				       }}
     if (k==0)

	printf ("func ne opr na otr");

       else {
         s=s/k;
	     printf("s=%5.2f max=%5.2f\n",s,max);
	     }
	     }
Так попробуй.
Kolaps вне форума Ответить с цитированием
Старый 23.05.2012, 20:24   #3
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

В этой строчке
Код:
 y=x/(x*x-1)+log(x+2)/log(3);
компилятор запутался, к какому типу приводить тройку. Для каждого из типов double, long double и float определена своя функция log, вот у него бедного крыша и поехала. Сделайте вот так и всё будет нормально
Код:
 y=x/(x*x-1)+log(x+2)/log(3.0);
А ещё вот эту строчку
Код:
if (x!=1&x!=-1&x>-2)
приведите к логически правильному виду
Код:
if ((x!=1) && (x!=-1) && (x>-2))
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сбой идет VIKA1829 Помощь студентам 7 13.03.2011 23:31
функция на си..идет зачет( lyon93 Помощь студентам 2 25.12.2010 15:00
Не идет программа с графикой baddog Паскаль, Turbo Pascal, PascalABC.NET 5 02.06.2010 13:55
Не могу понять почему не идет сортировка файла, помогите пожалуйста Taisja Помощь студентам 2 15.06.2008 20:37