Пятница, 26 Апреля 2024, 10:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Помогите с лабораторной работой (Выдает ошибку)
Помогите с лабораторной работой
Assassin5Дата: Понедельник, 05 Декабря 2011, 19:33 | Сообщение # 1
частый гость
Сейчас нет на сайте
MS Visual Studio 2010. Вот код программы:

#include "stdafx.h"
#include <iostream>
using namespace std;
#include <math.h>

#define dX 0.8
#define iN 11

void main()
{
float fY;
int iF, i;
printf("Individual task\n");
fY=0;
iF=1;
for (i=1; i<=iN; i++)
{
iF=iF*i;
fY=fY+((-1)^i)*((exp(i*log(dX))*log(dX)^i)/iF);
}
printf("y = %f\n",fY);
cin >> i;
}

Подчеркивает в строке с вычислением fY функцию exp.

Error: Выражение должно иметь целочисленный или перечисляемый тип.

^: Недопустимо, левый операнд имеет тип double.

Подскажите, что не так. Заранее спасибо.


http://vkontakte.ru/id84076405
0x90Дата: Понедельник, 05 Декабря 2011, 19:45 | Сообщение # 2
участник
Сейчас нет на сайте
Quote (Assassin5)
fY=fY+((-1)^i)*((exp(i*log(dX))*log(dX)^i)/iF);

exp и log возвращают значения double, ты эти значения пытаешся скормить оператоу ^, который ожидает int. Можешь сам привести их к int.
Code

fY=fY+((-1)^i)*(((int)(exp(i*log(dX)))*((int)log(dX))^i)/iF);
ЙакудДата: Понедельник, 05 Декабря 2011, 19:47 | Сообщение # 3
участник
Сейчас нет на сайте
Code

void main()  
{  
   double fY;  
   double iF, i;  
   printf("Individual task\n");  
   fY=0;  
   iF=1;  
   for (i=1; i<=iN; i++)  
   {  
   iF=iF*i;  
   fY=fY+pow(-1, i)*((exp(i*log(dX))*pow(log(dX),i))/iF);  
   }  
   printf("y = %f\n",fY);  
   cin >> i;  
}

Вот так у меня запустилось.
Если под символом "^" ты имел ввиду возведение в степень, то пользуйся функцией pow(выражение, степень).
Ещё поменял тип переменных iF и i с int на double. Вроде работает


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
Assassin5Дата: Понедельник, 05 Декабря 2011, 20:13 | Сообщение # 4
частый гость
Сейчас нет на сайте
Все заработало. Спасибо за помощь.

http://vkontakte.ru/id84076405
Форум игроделов » Программирование » C/C++ » Помогите с лабораторной работой (Выдает ошибку)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг