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

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

Войти
Регистрация
Восстановить пароль
 
Userock
-1 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 11
#1

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

05.08.2013, 09:53. Просмотров 557. Ответов 10
Метки нет (Все метки)

Здравствуйте уважаемые программисты! Вроде должно работать. Программа считает среднее арифметическое значение:
Вот код.
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 минуту
Ошибок не подчеркивает, но и не компилирует(((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2013, 09:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не работает? (C++):

Почему выводится в виде таблицы и почему не работает сортировка - C++
почему выводится в виде таблицы? почему не работает сортировка? и как туда можно вставить классы комнат? hotel.h #include...

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Почему в динамическом массиве не работает то, что работает со статическим? - C++
Программа зависает #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; using namespace std; int main() { ...

Почему не работает cin.clear() и как работает sync()? - C++
#include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; char*input(char*ch,int&amp;n){ cin.getline(ch,20); //cin.sync(); ...

Не могу понять почему не работает (или правильно не работает) - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; int i,j; cout&lt;&lt;&quot;nachalnya...

Почему в библиотеке не работает то, что спокойно работает в программе? - C++
День всем добрый! Я здесь решил собрать библиотеку для конструктора игр Game Maker. Хотел поэкспериментировать. Как всегда, у...

10
Croessmah
Ушел
Эксперт CЭксперт С++
13554 / 7705 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 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();
};// <-- после описания структур и классов нужна точка с запятой
0
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 ==========
0
Catstail
Модератор
22840 / 11206 / 1813
Регистрация: 12.02.2012
Сообщений: 18,445
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;
}
1
Userock
-1 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 11
05.08.2013, 13:34  [ТС] #5
Спасибо, работает!
Но return 0 не ставил тоже работает!
Единственное что я забыл поставить это точка с запятой после тела класса.
После определения методов точка с запятой не обязательна, вот.
А так спасибо еще раз
0
Catstail
Модератор
22840 / 11206 / 1813
Регистрация: 12.02.2012
Сообщений: 18,445
05.08.2013, 14:14 #6
Цитата Сообщение от Userock Посмотреть сообщение
Но return 0 не ставил тоже работает!
- конечно! Просто отсутствие return порождает warning при компиляции. Чтобы его не было, нужно либо вставить return, либо описать main так:

C++
1
2
3
4
void main()
{
///
}
0
Userock
-1 / 0 / 0
Регистрация: 25.07.2013
Сообщений: 11
05.08.2013, 15:15  [ТС] #7
Обычно мэин функция должна возвращать ОС значение 0 при успешном завершении - это я знаю да и везде в книгах пишут. Но вот про: void main{} - первый раз слышу))), а это правильно вопрос,,, в плане использования в своих программах на С++?!
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
05.08.2013, 15:43 #8
Цитата Сообщение от Userock Посмотреть сообщение
void main{}
Студия позволяет. Но вообще, это нарушение стандарта C++.
1
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
05.08.2013, 16:26 #9
Да и warning`а по поводу отсутствия return в main не должно быть, так как по умолчанию возвращается 0 ( это касается только main()).
0
Catstail
Модератор
22840 / 11206 / 1813
Регистрация: 12.02.2012
Сообщений: 18,445
05.08.2013, 16:40 #10
Цитата Сообщение от Toshkarik Посмотреть сообщение
Да и warning`а по поводу отсутствия return в main не должно быть
- в VC++ 6.0 он имеет место
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
05.08.2013, 16:43 #11
Catstail, оно и не удивительно, этой IDE 15 лет, стандарт поменялся несколько раз за это время.
0
05.08.2013, 16:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2013, 16:43
Привет! Вот еще темы с ответами:

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? - C++
Есть такая функция: void Array::SetStartIndexes(sz3_Arr_t *array) { start_index.reserve(array-&gt;size()); ...

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему? - C++
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland Developer Studio, а Visual Studio 2008 пишет, что проэкт...

Почему не работает - C++
Если по отдельности запускать — fin() и fout() они работают. int main() { fout(); system(&quot;pause&quot;); return 0; }

Не работает. Почему? - C++
Почему не работает данный код? #include &lt;stdio.h&gt; void main() { char *menu; char **order; char **Cprice; int a = 0; ...


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

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

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