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

Почему не работает? - C++

Восстановить пароль Регистрация
 
Userock
-1 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 11
05.08.2013, 09:53     Почему не работает? #1
Здравствуйте уважаемые программисты! Вроде должно работать. Программа считает среднее арифметическое значение:
Вот код.
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 "stdafx.h"
#include <iostream> // для cout, cin, endl, cin.get();
using namespace std;
 
//.......................................................
 
class obj
{ private:
  float chislo;
  public:
void Vvod();
float Vivod();
}
 
void obj::Vvod()
{
cin >> chislo;
}
 
float obj::Vivod()
{
return chislo;
}
 
int main()
{
  int const M = 5;
    obj mass[M];
    float result = 0;
    for(int i = 0; i < M; i++)
    {
        cout << "Vvedite " << i+1 << "chislo: ";
        mass[i].Vvod();
        result +=mass[i].Vivod();
    }
    cout << "\nSrednee arifmeticheskoe = " << result/M;
 
/////////////Завершение при вводе//////////////
cout << endl;
system("pause");
}
Добавлено через 1 минуту
Ошибок не подчеркивает, но и не компилирует(((
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
05.08.2013, 09:56     Почему не работает? #2
Цитата Сообщение от Userock Посмотреть сообщение
Ошибок не подчеркивает, но и не компилирует(((
текст ошибок в студию

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
class obj
{ private:
  float chislo;
  public:
void Vvod();
float Vivod();
};// <-- после описания структур и классов нужна точка с запятой
Userock
-1 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 11
05.08.2013, 09:56  [ТС]     Почему не работает? #3
Я так понял вот это?!
1>------ Build started: Project: first_steps, Configuration: Debug Win32 ------
1>Build started 05.08.2013 9:45:06.
1>InitializeBuildStatus:
1> Touching "Debug\first_steps.unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1> first_steps.cpp
1>c:\users\dozor\desktop\програмирование\мои программы\с++\first_steps\first_steps\first_steps.cpp(25): error C2628: 'obj' followed by 'void' is illegal (did you forget a ';'?)
1>c:\users\dozor\desktop\програмирование\мои программы\с++\first_steps\first_steps\first_steps.cpp(26): error C2556: 'obj obj::Vvod(void)' : overloaded function differs only by return type from 'void obj::Vvod(void)'
1> c:\users\dozor\desktop\програмирование\мои программы\с++\first_steps\first_steps\first_steps.cpp(21) : see declaration of 'obj::Vvod'
1>c:\users\dozor\desktop\програмирование\мои программы\с++\first_steps\first_steps\first_steps.cpp(26): error C2371: 'obj::Vvod' : redefinition; different basic types
1> c:\users\dozor\desktop\програмирование\мои программы\с++\first_steps\first_steps\first_steps.cpp(21) : see declaration of 'obj::Vvod'
1>c:\users\dozor\desktop\програмирование\мои программы\с++\first_steps\first_steps\first_steps.cpp(43): error C2264: 'obj::Vvod' : error in function definition or declaration; function not called
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.28
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
05.08.2013, 11:02     Почему не работает? #4
Вставлены три точки с запятой; добавлен header для system... Ну, и return 0; т.к. main должна возвращать int. В результате - ни одной ошибки при компиляции:

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 <iostream.h> // для cout, cin, endl, cin.get();
#include <stdlib.h>
 
//.......................................................
 
class obj
{ private:
  float chislo;
  public:
void Vvod();
float Vivod();
};
 
void obj::Vvod()
{
cin >> chislo;
};
 
float obj::Vivod()
{
return chislo;
};
 
int main()
{
  int const M = 5;
    obj mass[M];
    float result = 0;
    for(int i = 0; i < M; i++)
    {
        cout << "Vvedite " << i+1 << "chislo: ";
        mass[i].Vvod();
        result +=mass[i].Vivod();
    }
    cout << "\nSrednee arifmeticheskoe = " << result/M;
 
/////////////Завершение при вводе//////////////
cout << endl;
system("pause");
return 0;
}
Userock
-1 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 11
05.08.2013, 13:34  [ТС]     Почему не работает? #5
Спасибо, работает!
Но return 0 не ставил тоже работает!
Единственное что я забыл поставить это точка с запятой после тела класса.
После определения методов точка с запятой не обязательна, вот.
А так спасибо еще раз
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
05.08.2013, 14:14     Почему не работает? #6
Цитата Сообщение от Userock Посмотреть сообщение
Но return 0 не ставил тоже работает!
- конечно! Просто отсутствие return порождает warning при компиляции. Чтобы его не было, нужно либо вставить return, либо описать main так:

C++
1
2
3
4
void main()
{
///
}
Userock
-1 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 11
05.08.2013, 15:15  [ТС]     Почему не работает? #7
Обычно мэин функция должна возвращать ОС значение 0 при успешном завершении - это я знаю да и везде в книгах пишут. Но вот про: void main{} - первый раз слышу))), а это правильно вопрос,,, в плане использования в своих программах на С++?!
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
05.08.2013, 15:43     Почему не работает? #8
Цитата Сообщение от Userock Посмотреть сообщение
void main{}
Студия позволяет. Но вообще, это нарушение стандарта C++.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
05.08.2013, 16:26     Почему не работает? #9
Да и warning`а по поводу отсутствия return в main не должно быть, так как по умолчанию возвращается 0 ( это касается только main()).
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
05.08.2013, 16:40     Почему не работает? #10
Цитата Сообщение от Toshkarik Посмотреть сообщение
Да и warning`а по поводу отсутствия return в main не должно быть
- в VC++ 6.0 он имеет место
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2013, 16:43     Почему не работает?
Еще ссылки по теме:

C++ Почему не работает?
C++ Почему выводится в виде таблицы и почему не работает сортировка

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

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
05.08.2013, 16:43     Почему не работает? #11
Catstail, оно и не удивительно, этой IDE 15 лет, стандарт поменялся несколько раз за это время.
Yandex
Объявления
05.08.2013, 16:43     Почему не работает?
Ответ Создать тему
Опции темы

Текущее время: 05:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru