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

[C++] Хелп в чем ошибки

05.01.2012, 01:04. Показов 1761. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1) составить программу, котороя распечатывает значения функций 10*N,100*N и 1000*N, для N=1....10 с шагом изменения N равным 2.

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream> 
use namespace std; 
 
int main() 
{ 
for (int n = 1; n <= 10; n += 2) 
{ 
cout << n * 10 << " " << n * 100 << " " << n * 1000 << "\n"; 
} 
return 0; 
}

2) найти произведение элементов произвольной матрицы,которое кратное 5

C++
1
2
3
4
5
6
7
8
9
#include <iostream> 
 
int main(){ 
int p=1; 
for(int i=0; i<n; i++) 
for(int j=0; j<m; j++) 
if (!matrix[i][j]%5) p*=matrix[i][j]; 
cout << p << endl; 
}
 Комментарий модератора 
Используйте теги форматирования кода!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2012, 01:04
Ответы с готовыми решениями:

В чем ошибки?
{#define M 15 int k, b; int i, j; ... /*ввод b */ while(j&lt;j) if (i&gt;j) then ...

В чем ошибки ?
#include&lt;iostream&gt; using namespace std; int main() { const int n = 10; int mas; int...

В чем ошибки
// The header file Sort.h #include&lt;iostream&gt; #include&lt;cassert&gt; using namespace std; ...

в чем ошибки?
Написать функцию, находящую индекс первого минимального элемента массива. Написать программу,...

24
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
05.01.2012, 01:18 2
во второй нет
Цитата Сообщение от saphiron Посмотреть сообщение
use namespace std;
и

Цитата Сообщение от saphiron Посмотреть сообщение
return 0;
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
05.01.2012, 03:07 3
Не use, а using.
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
05.01.2012, 20:47 4
Во втором можно успешно помножить на ноль, туда проверку стоит засунуть.
Цитата Сообщение от ValeryS Посмотреть сообщение
return 0;
Ты так говоришь, будто это обязательно.
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
05.01.2012, 21:01 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
 int main() {     
        int p=1;    
     const int n=5;    
     const int m=3;    
     int matrix[n][m];    
     for(int i=0; i<n; i++)        
         for(int j=0; j<m; j++)       
        {           
              cout<<"enter m["<<i<<"]["<<j<<":";           
              cin>>m[i][j];        
        }     
     for(int i=0; i<n; i++)
                   for(int j=0; j<m; j++)            
                          if (!matrix[i][j]%5) p*=matrix[i][j];      
     cout << p << endl;  
}
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
05.01.2012, 22:02 6
Цитата Сообщение от NoMasters Посмотреть сообщение
return 0;
Ты так говоришь, будто это обязательно.
А по твоему нет???
C++
1
int main()
функция обязана что то вернуть
иначе любой нормальный компилятор даст ошибку или предупреждение
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
05.01.2012, 22:05 7
Стандарт читать пробовал? Ни один нормальный компилятор _ошибки_ не выдаст.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
06.01.2012, 12:31 8
Цитата Сообщение от NoMasters Посмотреть сообщение
_ошибки_ не выдаст
Как не выдаст и предупреждения, опять же потому что всё по стандарту.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
06.01.2012, 14:25 9
Цитата Сообщение от NoMasters Посмотреть сообщение
Ты так говоришь, будто это обязательно.
А разве нет?

Добавлено через 56 секунд
Цитата Сообщение от saphiron Посмотреть сообщение
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
n, m и matrix не объявлены.

Добавлено через 3 минуты
Цитата Сообщение от NoMasters Посмотреть сообщение
Стандарт читать пробовал? Ни один нормальный компилятор _ошибки_ не выдаст.
А студия уже не нормальная? Да и стандарт тебе самому не помешает. В заголовке функции перед именем пишется тип возвращаемого значения, здесь этот тип определяется однозначно, если не воид, то само значение должно быть.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
06.01.2012, 14:34 10
taras atavin, в мэйне return 0; не обязателен. Это по стандарту (его компилятор сам не явно вставляет)

Цитата Сообщение от taras atavin Посмотреть сообщение
А студия уже не нормальная?
Нормальная, поэтому она молчит.

Добавлено через 20 секунд
Цитата Сообщение от taras atavin Посмотреть сообщение
если не воид, то само значение должно быть.
main обязан вернуть int
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
06.01.2012, 15:05 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
alex@mbook ~ $ cat tmp.c
int some()
{
        //do noting
}
 
int main()
{
        some();
}
alex@mbook ~ $ gcc tmp.c
alex@mbook ~ $
УМВР. Это не только к main относится. Впрочем, можно руками включить дополнительные предупреждения при отладке.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
06.01.2012, 15:09 12
NoMasters, для main даже при соответствующем ключе не будет предупреждений, в отличие от других функций. К тому же, только Си-компилятор пропустит функцию (не-main) без явного return, если она объявлена как возвращающая не void. С++-компилятор это посчитает ошибкой.

Добавлено через 49 секунд
Хм, нет, не посчитает...
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
06.01.2012, 15:12 13
silent_1991, http://codepad.org/AHvRxoB8
Вы сначала правильно сказали. http://codepad.org/SJcIiABt

Добавлено через 37 секунд
Си пропустит, С++ не пропустит. Как я уже говорил, В main retrun не нужен.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
06.01.2012, 15:13 14
go, код откомпилировался, а компилятор выдал всего-лишь предупреждение. Я ожидал иного развития событий...
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
06.01.2012, 15:14 15
Цитата Сообщение от go Посмотреть сообщение
Как я уже говорил, В main retrun не нужен.
Согласен. Если
C++
1
void main()
.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
06.01.2012, 15:19 16
silent_1991, смотря как настроен. Вот
Код
cc1plus: warnings being treated as errors
In function 'int foo()':
Line 3: warning: control reaches end of non-void function
http://codepad.org/AHvRxoB8
Студия 10 тоже не пропускает, говорит ошибка. Все как Вы ожидали

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Согласен. Если
Так писать нельзя, это не по стандарту. Это ошибка (undefined behavior)

А вот так можно
C++
1
2
3
int main ()
{
}
Добавлено через 58 секунд
http://codepad.org/Ggy7D6hU
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
06.01.2012, 15:27 17
taras atavin, вы что, наотрез отказываетесь воспринимать то, что вам говорят? По стандарту если компилятор не находит в функции main ни одного return, он вставляет в конец функции код, эквивалентный return 0. При том, что в стандарте определены всего две перегрузки функции main:
C++
1
2
int main();
int main(int, char **);
Ни одна из них, как видите, не возвращает void, так что ваши оговорки на счёт void main() ошибочны.

Добавлено через 1 минуту
go, само собой, смотря как настроен. В данном случае все предупреждения трактуются как ошибки, но от этого предупреждение не перестаёт быть таковым. Так что это не ошибка. А в плане стандарта я gcc доверяю куда больше, чем студии.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
06.01.2012, 15:32 18
silent_1991, А если откомпилит, то что вернет?
C++
1
2
3
4
5
int foo () {}
int main ()
{
    int a = foo () ; //мусор? 
}
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
06.01.2012, 15:35 19
Цитата Сообщение от silent_1991 Посмотреть сообщение
При том, что в стандарте определены всего две перегрузки функции main:
C++
1
2
int main();
int main(int, char **);
Ни одна из них, как видите, не возвращает void, так что ваши оговорки на счёт void main() ошибочны.
Я ваще то на отсебятину намекал.
0
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
06.01.2012, 15:38 20
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
alex@mbook ~ $ cat tmp.c 
#include <stdio.h>
int some()
{
        //do noting
}
 
int main()
{
        printf("%d\n", some());
}
alex@mbook ~ $ gcc tmp.c
alex@mbook ~ $ ./a.out 
0
alex@mbook ~ $
0
06.01.2012, 15:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2012, 15:38
Помогаю со студенческими работами здесь

В чем причина ошибки?
помогите разобраться почему выходит ошибка? #include &lt;iostream.h&gt; #include &lt;string.h&gt; #include...

В чем заключаются ошибки
Добрый вечер, возникла проблема при изучении работы циклов. Подскажите, что от меня требуют? Зачем...

В чем причина ошибки?
Код int main() { char arr; scanf(&quot;%s %s&quot;, &amp;arr, &amp;arr); printf(&quot;%s\n\n&quot;,...

В чем ошибки кода?
Для каждого x, изменяющегося от a до b с шагом h, найти значение функции Y(x), суммы S(x) и...


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

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