Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
#1

Не вижу ошибку - C++

19.08.2008, 21:37. Просмотров 943. Ответов 8
Метки нет (Все метки)

Код
#include<iostream>
#include<math.h>
#include<iostream>
#include<math.h>

using namespace std;

int logarifm1(double *p1, double *p2, double *p3, double *p4)
{
     int am = 1;
     *p1 = (-1)*(*p2), *p3 = *p1;
            
            for(double n = 0; fabs(*p1) > *p4; n++) 
            {
            
            (*p1)*= ((-1)*(*p2))*(1/(n+1));
            (*p3)+=(*p1);
             am++ ;
            
            }     
   return am;  
}




int main() {
    
    double xn,xk,x,dx, y = 1.0 , eps, member;
    
    int  amm;
    printf ("Enter eps, xn, xk, dx \n");
    
    scanf("%fl%fl%fl%fl",eps, xn, xk, dx); // после этой инструкции прога вылетает
    
    printf ("+---------------------------------------+\n");
    printf ("| Calculation of function e(-x) with          |\n");
    printf ("| Teyhlor formula with given accurasy.     |\n");
    printf ("+---------------------------------------+\n");
    printf ("|X     |Y     |Amount calculated members  |\n");
    for(x=xn; x<xk ;x+=dx)  {
              
              logarifm1(&member, &x, &y, &eps);
              amm = logarifm1(&member, &x, &y, &eps);
              
    printf("+---------------------------------------+\n");
    printf("|%5.4fl|%5.4fl|%5d                    |\n" , x ,y , amm );
    }

    printf("+---------------------------------------+\n");
    
    system("pause");
    
    return 0;
    
}
Написал прогу, печатующую значения функции exp(-x) по формуле Тейлора, с заданной точностью, чтобы член ряда тейлора был не больше eps. Сначала прога работала, потом начала вылетать после указанной инструкции. DEV C++ 4.9.9.2 ошибки не находит; в чём дело понять не могу - либо глаз замылился, либо знаний не хватает...

Добавлено через 6 минут 27 секунд
Прога продублировалась... Чёрт, правка не работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2008, 21:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не вижу ошибку (C++):

Не вижу ошибку - C++
Здравствуйте! Не вижу в чём ошибка (выдает на 12 строчке). Так же возникла проблема с выравниванием по правому краю (нашел 2 варианта...

Линейный алгоритм, а ошибку не вижу - C++
Вот задачка : Дано действительное число X. Не пользуясь никакими другими операциями, кроме умножения, сложения и вычитания, вычислить 1 -...

3, 4, 5 пункт меню программы не совсем коретно работает. Хоть убей но ошибку не вижу( - C++
#include&lt;iostream&gt; #include&lt;string&gt; #include&lt;iomanip&gt; #include&lt;fstream&gt; #include &lt;stdlib.h&gt; #include &lt;windows.h&gt; #include...

не вижу ошибки - C++
у меня при любом в воде числа из заданного пользователем диапазона выводит угадали. Суть игры: пользователю предлагается вводить число из...

Не вижу последовательности - C++
Решаю задачи Абрамян. Не надо говорить решение. For 27. Скажите какая последовательность? Задание: Дано вещественное число X (|X| &lt; 1)...

Не вижу сообщения из цикла фор - C++
Не представляю что это может быть. (строка 83) cout &lt;&lt; &quot;p1: &quot; &lt;&lt; p1 &lt;&lt; endl; cout &lt;&lt; &quot;i: &quot; &lt;&lt; i &lt;&lt; endl; //Листинг 8.11. Выделение...

8
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
19.08.2008, 21:42 #2
Цитата Сообщение от Счастливчик Посмотреть сообщение
Код
  scanf("%fl%fl%fl%fl",eps, xn, xk, dx); // после этой инструкции прога вылетает
аргументами scanf являются адреса переменных,в которые нужно производить запись. Ты передаешь значения переменных,сканф интерпретирует их как адреса для записи и записывает непойми куда. Да и в стеке программы происходит непойми что,т.к дабл имеет размер 8 байт, а указатель 4 байта,в результате вызов черррртовски некорректен. Вот правильный вариант:
Код
 scanf("%fl%fl%fl%fl",&eps, &xn, &xk, &dx);
0
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
19.08.2008, 21:45  [ТС] #3
Спасибо
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
19.08.2008, 21:56 #4
Общий совет по такой теме : используй отладчик. Классная штука эти отладчики.
0
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
19.08.2008, 22:23  [ТС] #5
Прогоните кто нить через свой компилятор, ошибку я исправил, но всё равно не работает как надо. Делал через cout всё нормально, как стал через принтф и сканф делать, пошли ошибки; теперь мне кажется глюки компиллятора...
0
XuTPbIu_MuHTAu
Эксперт С++
2226 / 741 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
19.08.2008, 22:55 #6
Вот,еще одна корректировка для scanf :
Код
 scanf("%lf %lf %lf %lf",&eps, &xn, &xk, &dx);
%lf вместо %fl
0
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
19.08.2008, 23:11  [ТС] #7
Всё, теперь точно работает, спасибо.
0
Просто_Юлия
133 / 45 / 2
Регистрация: 27.05.2008
Сообщений: 245
20.08.2008, 02:53 #8
Дежа вю какое-то...
0
Счастливчик
19 / 18 / 0
Регистрация: 04.08.2008
Сообщений: 31
20.08.2008, 15:07  [ТС] #9
Цитата Сообщение от Просто_Юлия Посмотреть сообщение
Дежа вю какое-то...
0
20.08.2008, 15:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2008, 15:07
Привет! Вот еще темы с ответами:

То ли getchar мозги парит, то ли я что-то не вижу - C++
не срабатывает, получается бесконечный цикл... do { ch=getchar(); } while ((ch != 'y') | (ch!='n')); что не так,...

Игра Maze labirinth - не вижу начала игры - C++
Добрый вечер! Вопрос скорее по вижуал студио, хотя... // 8.15 sort.cpp : Defines the entry point for the console application. // ...

Не вижу окна с кодом (нет окна редактирования): найти причины странного поведения программы - C++
Создаю проект, а кроме синего экрана ничего больше нет, не знаю, что делать. Прочла здесь же про образователь решений(типа должен быть...

Подскажите как исправить ошибку. прога ломается на 79 строке. а ошибку не выдает - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int a,int b) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru