Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 17

Ошибка при отладке программы

20.12.2012, 20:38. Показов 1234. Ответов 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <math.h>
#include <locale>
void c511();
void c521();
void c5211();
int main() {
    int k;
    setlocale( LC_ALL,"Russian");
    std::cout<<"выберите лабораторную :" <<std::endl;
    std::cout<<"1 - C5.1.1" <<std::endl;
    std::cout<<"2 - C5.2.1" <<std::endl;
    std::cout<<"3 - C5.2.11" <<std::endl;
    std::cin >> k;
        if (k==1){c511();}
    if (k==2){c521();}
    if (k==3){c5211();}
}
void c511() {
using namespace std;
double x=2.35;
double a=0.89;
double b=2.065;
double y;
y=pow(x,(a+b));
std::cout <<"y= " << y << std::endl;}
void c521() {
using namespace std;
double x;
double y;
double z;
std::cout<<"vvedite x"<<std::endl;
std::cout<<"vvedite y"<<std::endl;
std::cin >> x;
std::cin >> y;
if(x>0){z=x-y;}
else {z=y-x+1;}
std::cout << "z= "<<y << std::endl;
std::cin >> x;
}
void c5211() {
using namespace std;
double a;
double b;
double c;
double d;
double kol = 4;
std::cout << "vvedite a"<<std::endl;
std::cin >> a;
std::cout << "vvedite b"<<std::endl;
std::cin >> b;
std::cout << "vvedite c"<<std::endl;
std::cin >> c;
std::cout << "vvedite d"<<std::endl;
std::cin >> d;
if(a <= 0) {--kol;}
if(b <= 0) {--kol;}
if(c <= 0) {--kol;}
if(d <= 0) {--kol;}
if(kol == 0) {return 0;}
double summ = 0;
if(a > 0) {summ += a;}
if(b > 0) {summ += b;}
if(c > 0) {summ += c;}
if(d > 0) {summ += d;}
 cout << summ / kol;
}
Лог:

1>------ Построение начато: проект: dv, Конфигурация: Debug Win32 ------
1>Построение начато 20.12.2012 20:13:28.
1>InitializeBuildStatus:
1> Обращение к "Debug\dv.unsuccessfulbuild".
1>ClCompile:
1> dv.cpp
1>c:\users\1\documents\visual studio 2010\projects\dv\dv\dv.cpp(57): error C2562: c5211: функция типа "void", возвращающая значение
1> c:\users\1\documents\visual studio 2010\projects\dv\dv\dv.cpp(6): см. объявление "c5211"
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.40
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

В последней подпрограмме при получении значения kol равным 0 программа должна возвращать к вводу значений a, b, c, d. Помогите, пожалуйста. Как это сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2012, 20:38
Ответы с готовыми решениями:

Ошибка при отладке программы
Недавно начал заниматься на С++ по книге &quot;Дейтел Х. Дейтел П. - Как программировать на C++&quot;, и столкнулся с такой проблемкой, ввожу...

при отладке программы возникает ошибка
при отладке программы,возникает одно и то же сообщение при выводе из формулы(на фото в окне отладки) условие: Вычислить для своего...

Ошибка при выходе из программы, а в отладке с самого начала её нет
Программа должна повторять действия калькулятора. Условия таковы вводим строку и после работаем с ней как с числами и символами, но при...

9
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
20.12.2012, 20:48
если функция описана как
void function_name()
это значит, она не может возвращать значений
чтобы она могла возвращать int, надо писать так:
int function_name()
1
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 17
20.12.2012, 21:05  [ТС]
Спасибо, исправил.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.12.2012, 21:15
Bravo48, запиши свой код вот так
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <cmath>
using namespace std;
void c511();
void c521();
void c5211();
int main() 
{
    int k;
    bool bContinue = true;
    while(bContinue)
    {
        cout<<"***MENU***" <<endl;
        cout<<"0 - exit" <<endl;
        cout<<"1 - C5.1.1" <<endl;
        cout<<"2 - C5.2.1" <<endl;
        cout<<"3 - C5.2.11" <<endl;
        cin>> k;
        switch(k)
        {
            case 0:bContinue = false;break;
            case 1:c511();break;
            case 2:c521();break;
            case 3:c5211();break;
            default:
                cout<<"Unsupported key"<<endl;
                break;
        }
    }
    return 0;
}
 
void c511() 
{
 
    double x=2.35;
    double a=0.89;
    double b=2.065;
    double y;
    y=pow(x,(a+b));
    cout <<"y= " << y << endl;
}
void c521() 
{
 
    double x;
    double y;
    double z;
    cout<<"vvedite x"<<endl;
    cout<<"vvedite y"<<endl;
    cin>> x;
    cin>> y;
    if(x>0)
        z=x-y;
    else 
        z=y-x+1;
    cout << "z= "<<y << endl;
    cin>> x;
}
void c5211() 
{
    double a;
    double b;
    double c;
    double d;
    double summ;
    double kol = 4;
    cout << "vvedite a"<<endl;
    cin>> a;
    cout << "vvedite b"<<endl;
    cin>> b;
    cout << "vvedite c"<<endl;
    cin>> c;
    cout << "vvedite d"<<endl;
    cin>> d;
    if(a <= 0) kol--;
    if(b <= 0) kol--;
    if(c <= 0) kol--;
    if(d <= 0) kol--;
    if(kol != 0) 
    {
        summ = 0;
        if(a > 0) 
            summ += a;
        if(b > 0) 
            summ += b;
        if(c > 0) 
            summ += c;
        if(d > 0) 
            summ += d;
        cout << summ / kol;
    }
}
То что мэйн не возвращал нолик для совеменных скорее правило (они дефалтом return 0 ставят) нежели ошибка.
Миниатюры
Ошибка при отладке программы  
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.12.2012, 21:19
Цитата Сообщение от Bravo48 Посмотреть сообщение
--kol;
- не даёт никакой выгоды
std::cout тоже самое, хотя люди упёрто верят что это некоторые атрибуты магии. Пределагаю прочесть
https://www.cyberforum.ru/blogs/34326/blog275.html на счёт using namespace std;

Добавлено через 2 минуты
сами же ошибки в коде были здесь
http://codepad.org/Kxo3fXMR
In function 'void c5211()':
Line 60: error: return-statement with a value, in function returning 'void'
compilation terminated due to -Wfatal-errors.
Цитата Сообщение от Bravo48 Посмотреть сообщение
if(kol == 0) {return 0;}
- функция имеет тип void какой return 0?
Уже тогда просто return;
(прошу заметить что на отсутсвие return 0; c11 компилятор даже не ругается
отстусвие return 0 в main
)
1
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 17
20.12.2012, 22:03  [ТС]
C++
1
2
3
4
5
6
7
8
void c531a(){
    int S=128;
    int i;
for (i=3;i<=6;i++){
    if(i%3 = 0) 
        S=S-3; }
std::cout<< "S= "<< S <<std::endl;
}
Условие было записано псевдокодом:
S := 128
нц для i = 3 до 6
если mod(i, 3) = 0, то
S := S – 3
всё
кц i
Вот напейсал еще одну подпрограмму, при отладке ругается, что i должен быть изменяемым левосторонним значением. Честно, даже вникать сейчас не хочу, что это значит. Просто, прошу, исправьте, где ошибся.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.12.2012, 22:25
Цитата Сообщение от Bravo48 Посмотреть сообщение
if(i%3 = 0)
это присваивание а надо if(i%3 == 0)
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.12.2012, 22:27
Bravo48, вот код с 4-м пунктом
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <cmath>
using namespace std;
void c511();
void c521();
void c5211();
void c531a();
int main() 
{
    int k;
    bool bContinue = true;
    while(bContinue)
    {
        cout<<"***MENU***" <<endl;
        cout<<"0 - exit" <<endl;
        cout<<"1 - C5.1.1" <<endl;
        cout<<"2 - C5.2.1" <<endl;
        cout<<"3 - C5.2.11" <<endl;
        cout<<"4 - C5.3.1a"<<endl;
        cin>> k;
        switch(k)
        {
            case 0:bContinue = false;break;
            case 1:c511();break;
            case 2:c521();break;
            case 3:c5211();break;
            case 4:c531a();break;
            default:
                cout<<"Unsupported key"<<endl;
                break;
        }
    }
    return 0;
}
 
void c511() 
{
 
    double x=2.35;
    double a=0.89;
    double b=2.065;
    double y;
    y=pow(x,(a+b));
    cout <<"y= " << y << endl;
}
void c521() 
{
 
    double x;
    double y;
    double z;
    cout<<"vvedite x"<<endl;
    cout<<"vvedite y"<<endl;
    cin>> x;
    cin>> y;
    if(x>0)
        z=x-y;
    else 
        z=y-x+1;
    cout << "z= "<<y << endl;
    cin>> x;
}
void c5211() 
{
    double a;
    double b;
    double c;
    double d;
    double summ;
    double kol = 4;
    cout << "vvedite a"<<endl;
    cin>> a;
    cout << "vvedite b"<<endl;
    cin>> b;
    cout << "vvedite c"<<endl;
    cin>> c;
    cout << "vvedite d"<<endl;
    cin>> d;
    if(a <= 0) kol--;
    if(b <= 0) kol--;
    if(c <= 0) kol--;
    if(d <= 0) kol--;
    if(kol != 0) 
    {
        summ = 0;
        if(a > 0) 
            summ += a;
        if(b > 0) 
            summ += b;
        if(c > 0) 
            summ += c;
        if(d > 0) 
            summ += d;
        cout << summ / kol;
    }
}
 
void c531a()
{
    int S=128;
    for (int i=3;i<=6;i++)
    {
        if(i%3 == 0) 
         S = S -3; 
    }
    cout<< "S= "<< S <<endl;
}
Миниатюры
Ошибка при отладке программы  
1
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 17
20.12.2012, 22:40  [ТС]
О, прошу, вы так накручиваете сложность, мне же не поверят, когда буду сдавать эту лабораторную Спасибо большое, просто я всего неделю занимаюсь Си, еще многого не знаю. Спасибо за помощь!
0
20.12.2012, 22:45

Не по теме:

Цитата Сообщение от Bravo48 Посмотреть сообщение
О, прошу, вы так накручиваете сложность, мне же не поверят, когда буду сдавать эту лабораторную
- дык я всего то меню ввёл, верней обвернул код выбора
Цитата Сообщение от Bravo48 Посмотреть сообщение
std::cout<<"выберите лабораторную :" <<std::endl;
* * std::cout<<"1 - C5.1.1" <<std::endl;
* * std::cout<<"2 - C5.2.1" <<std::endl;
* * std::cout<<"3 - C5.2.11" <<std::endl;
* * std::cin >> k;
* * * * if (k==1){c511();}
* * if (k==2){c521();}
* * if (k==3){c5211();}
циклом
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(bContinue)
* * {
* * * * cout<<"***MENU***" <<endl;
* * * * cout<<"0 - exit" <<endl;
* * * * cout<<"1 - C5.1.1" <<endl;
* * * * cout<<"2 - C5.2.1" <<endl;
* * * * cout<<"3 - C5.2.11" <<endl;
* * * * cout<<"4 - C5.3.1a"<<endl;
* * * * cin>> k;
* * * * switch(k)
* * * * {
* * * * * * case 0:bContinue = false;break;
* * * * * * case 1:c511();break;
* * * * * * case 2:c521();break;
* * * * * * case 3:c5211();break;
* * * * * * case 4:c531a();break;
* * * * * * default:
* * * * * * * * cout<<"Unsupported key"<<endl;
* * * * * * * * break;
* * * * }

и заменил if-ы на switch по ричине большей уместности. В остальном поубирал std:: и заменил єто всё одной единтсвенной строкой под инклудами
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
using namespace std;
вроди по мне как и не сложно:scratch:

Успехов на защите!;)

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2012, 22:45
Помогаю со студенческими работами здесь

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

Ошибка при отладке
запускаю программный код на отладку в Microsoft Visual C++ 2010 Express. выдает следующую ошибку в чем причина???

Ошибка при отладке
Нажимаю Ctrl+F5 или просто F5. Снизу вылазит все это( что сверху). Открывается консоль. И вместо того что бы выводить мне то что нужно,...

При отладке выдается ошибка сегментации
Всем привет! :) У меня такая проблема: программа по численным методам (кусок кода - дифференциальная прогонка), pu - массив 101 на 101,...

При отладке программы вылетает окошко с ошибкой: использование переменной без инициализации
код: #include &lt;iostream&gt; #include &lt;conio.h&gt; int A,n,m; using namespace std; void poisk1(); void poisk2(); int main() ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru