Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 14
1

Ошибка выполнения программы при использовании функций

28.08.2016, 15:38. Показов 2500. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Все привет, друзья!
Имеется задача:
Последовательность {Ai}i-1 образована по правилу Ai=1/i. Дано вещественное число 0<eps<0.1. Найти такое Ai , чтобы |Ai-Ai-1|<eps.

Вот решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include "conio.h" 
#include <stdio.h>
#include <iostream>
 
 void input()
 {double eps, a1, a0;
        int i=1;
                  
       while((eps<0)&&(eps>0.1));
        a1=1/((double)(i++));       
        
        do
        {
                a0=a1;
                a1=1/((double)(i++));
                if((eps>0 && eps<0.1)) break;
        else    {printf("dfd"); system("pause");exit(1);}
        }
        while((a0-a1)>eps);
        }
 
 void main()
 {double eps, a1, a0;
        int i=1;
        do
        {
                printf("Input eps: ");
                scanf_s("%lf", & eps);
                    
        }
     input();
printf("a[%d]=%lf",i-2,a1);
        _getch();
        printf("\nPress any key to exit");
        return 0;
Задача без использования функций работает, с использованием функций появляются ошибки:
синтаксическая ошибка: идентификатор "input"
функция типа "void", возвращающая значение
Помогите, пожалуйста, разобраться)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2016, 15:38
Ответы с готовыми решениями:

Ошибка времени выполнения при использовании функции scanf_s
Есть код создания библиотеки книг, это его часть. Если потребуется могу скинуть весь код, но он без...

Ошибка выполнения программы при использовании нескольких таймеров
Здравствуйте, использую в программе несколько таймеров. Принцип работы следующий: есть несколько...

Ошибка выполнения сценария при использовании WebBrowser
Когда в webbrowser обновляю или открываю страницу сайта, появляется окно с ошибкой. Как исправить?

Ошибка при использовании функций
Здравствуйте! Есть код, в котором значения теплопроводности, теплоемкости и плотности заданы...

8
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
28.08.2016, 15:45 2
Цитата Сообщение от MAN_zzz Посмотреть сообщение
void main()
C++
1
int main()
Добавлено через 3 минуты
Цитата Сообщение от MAN_zzz Посмотреть сообщение
C++
1
2
do
{
А while() где?
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 14
28.08.2016, 15:45  [ТС] 3
Теперь выскакивает только: "синтаксическая ошибка: идентификатор "input""
0
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
28.08.2016, 15:54 4
Цитата Сообщение от MAN_zzz Посмотреть сообщение
do { printf("Input eps: "); scanf_s("%lf", & eps); } input();
А где while() ?
https://msdn.microsoft.com/uk-... k5few.aspx
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 14
28.08.2016, 15:55  [ТС] 5
Переместил
C++
1
2
while((eps<0)&&(eps>0.1));
        a1=1/((double)(i++));
из функции Input и добавил перед перед вызовом функции Input в Main.
Появились ошибки: "использована неинициализированная локальная переменная "a1 и eps"
0
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
28.08.2016, 15:55 6
Цитата Сообщение от MAN_zzz Посмотреть сообщение
Теперь выскакивает только: "синтаксическая ошибка: идентификатор "input""
Покажи как исправил.
И неплохо бы узнать что этот код должен делать
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
28.08.2016, 15:55 7
Скобку потерял в конце, переменные в input() неинициализированные.
Цитата Сообщение от MAN_zzz Посмотреть сообщение
C++
1
2
while((eps<0)&&(eps>0.1));
 a1=1/((double)(i++));
Если это цикл, то как из него выйти?
0
0 / 0 / 0
Регистрация: 26.01.2016
Сообщений: 14
28.08.2016, 16:21  [ТС] 8
Вот код без использования функций:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include "conio.h" 
#include <stdio.h>
#include <iostream>
int main()
{
 
       double eps, a1, a0;
        int i=1;
        do
        {
                printf("Input eps: ");
                scanf_s("%lf", & eps);
                if((eps>0 && eps<0.1)) break;
        else    {printf("Eps должен быть 0<eps<0,1\n"); system("pause");exit(1);}
        }
       while((eps<0)&&(eps>0.1));
        a1=1/((double)(i++));       
        do
        {
                a0=a1;
                a1=1/((double)(i++));
        }
        
        while((a0-a1)>eps);
        printf("a[%d]=%lf",i-2,a1);
        _getch();
        return 0;       
}
Работает как нужно.

Добавлено через 21 минуту
Цитата Сообщение от nd2 Посмотреть сообщение
Скобку потерял в конце
Не понял, где именно?)
0
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
28.08.2016, 17:11 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "conio.h" 
#include <stdio.h>
#include <iostream>
 
double input()
{
    double eps;
    do
    {
            printf("Input eps: ");
            scanf_s("%lf", &eps);
            if((eps>0 && eps<0.1)) 
                return eps;
            else    {printf("Eps должен быть 0 < eps < 0.1\n");}
    }
    while(true);
}
 
double f(double eps, int& i)
{
    i = 1;
    double a1=1/((double)(i++));
    double a0;
    do
    {
        a0=a1;
        a1=1/((double)(i++));
    } while((a0-a1)>eps);
    return a1;
}
 
int main()
{
    double eps, result;
    eps = input();
    int i;
    result = f(eps, i);
    printf("a[%d]=%lf", i-2, result);
    _getch();
    return 0;       
}
1
28.08.2016, 17:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2016, 17:11
Помогаю со студенческими работами здесь

При использовании программы metasploit возникла ошибка
При использовании программы возникла ошибка которую вы можете у видеть на скрине ниже помогите...

Ошибка "Непредвиденное появление" при использовании оператора условного выполнения команд
Приветствую. Есть некоторый код, который правильно выполняется, но вот функция :EXIT работает...

Ошибка при выполнения программы
Всех с наступившем НОВЫМ ГОДОМ!!! У меня возникла ошибка при выполнение программы вот код: ...

Исключение времени выполнения при использовании ADO
Добрый день. Внизу привёл код. Компилируется без проблем. А вот при выполнении выкидывает...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru