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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
saphiron
Сообщений: n/a
05.01.2012, 01:04     [C++] Хелп в чем ошибки #1
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; 
}
 Комментарий модератора 
Используйте теги форматирования кода!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 01:04     [C++] Хелп в чем ошибки
Посмотрите здесь:

В чем причина ошибки? C++
C++ в чем ошибки?
C++ в чем суть ошибки?
В чем ошибки? C++
C++ В чем ошибки кода?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6378 / 4844 / 442
Регистрация: 14.02.2011
Сообщений: 16,066
05.01.2012, 01:18     [C++] Хелп в чем ошибки #2
во второй нет
Цитата Сообщение от saphiron Посмотреть сообщение
use namespace std;
и

Цитата Сообщение от saphiron Посмотреть сообщение
return 0;
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
05.01.2012, 03:07     [C++] Хелп в чем ошибки #3
Не use, а using.
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
05.01.2012, 20:47     [C++] Хелп в чем ошибки #4
Во втором можно успешно помножить на ноль, туда проверку стоит засунуть.
Цитата Сообщение от ValeryS Посмотреть сообщение
return 0;
Ты так говоришь, будто это обязательно.
zss
Модератор
Эксперт С++
 Аватар для zss
5956 / 5561 / 1788
Регистрация: 18.12.2011
Сообщений: 14,210
Завершенные тесты: 1
05.01.2012, 21:01     [C++] Хелп в чем ошибки #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;  
}
ValeryS
Модератор
6378 / 4844 / 442
Регистрация: 14.02.2011
Сообщений: 16,066
05.01.2012, 22:02     [C++] Хелп в чем ошибки #6
Цитата Сообщение от NoMasters Посмотреть сообщение
return 0;
Ты так говоришь, будто это обязательно.
А по твоему нет???
C++
1
int main()
функция обязана что то вернуть
иначе любой нормальный компилятор даст ошибку или предупреждение
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
05.01.2012, 22:05     [C++] Хелп в чем ошибки #7
Стандарт читать пробовал? Ни один нормальный компилятор _ошибки_ не выдаст.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.01.2012, 12:31     [C++] Хелп в чем ошибки #8
Цитата Сообщение от NoMasters Посмотреть сообщение
_ошибки_ не выдаст
Как не выдаст и предупреждения, опять же потому что всё по стандарту.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.01.2012, 14:25     [C++] Хелп в чем ошибки #9
Цитата Сообщение от NoMasters Посмотреть сообщение
Ты так говоришь, будто это обязательно.
А разве нет?

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

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

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

Добавлено через 20 секунд
Цитата Сообщение от taras atavin Посмотреть сообщение
если не воид, то само значение должно быть.
main обязан вернуть int
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
06.01.2012, 15:05     [C++] Хелп в чем ошибки #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 относится. Впрочем, можно руками включить дополнительные предупреждения при отладке.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.01.2012, 15:09     [C++] Хелп в чем ошибки #12
NoMasters, для main даже при соответствующем ключе не будет предупреждений, в отличие от других функций. К тому же, только Си-компилятор пропустит функцию (не-main) без явного return, если она объявлена как возвращающая не void. С++-компилятор это посчитает ошибкой.

Добавлено через 49 секунд
Хм, нет, не посчитает...
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.01.2012, 15:12     [C++] Хелп в чем ошибки #13
silent_1991, http://codepad.org/AHvRxoB8
Вы сначала правильно сказали. http://codepad.org/SJcIiABt

Добавлено через 37 секунд
Си пропустит, С++ не пропустит. Как я уже говорил, В main retrun не нужен.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.01.2012, 15:13     [C++] Хелп в чем ошибки #14
go, код откомпилировался, а компилятор выдал всего-лишь предупреждение. Я ожидал иного развития событий...
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.01.2012, 15:14     [C++] Хелп в чем ошибки #15
Цитата Сообщение от go Посмотреть сообщение
Как я уже говорил, В main retrun не нужен.
Согласен. Если
C++
1
void main()
.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.01.2012, 15:19     [C++] Хелп в чем ошибки #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
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.01.2012, 15:27     [C++] Хелп в чем ошибки #17
taras atavin, вы что, наотрез отказываетесь воспринимать то, что вам говорят? По стандарту если компилятор не находит в функции main ни одного return, он вставляет в конец функции код, эквивалентный return 0. При том, что в стандарте определены всего две перегрузки функции main:
C++
1
2
int main();
int main(int, char **);
Ни одна из них, как видите, не возвращает void, так что ваши оговорки на счёт void main() ошибочны.

Добавлено через 1 минуту
go, само собой, смотря как настроен. В данном случае все предупреждения трактуются как ошибки, но от этого предупреждение не перестаёт быть таковым. Так что это не ошибка. А в плане стандарта я gcc доверяю куда больше, чем студии.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.01.2012, 15:32     [C++] Хелп в чем ошибки #18
silent_1991, А если откомпилит, то что вернет?
C++
1
2
3
4
5
int foo () {}
int main ()
{
    int a = foo () ; //мусор? 
}
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
06.01.2012, 15:35     [C++] Хелп в чем ошибки #19
Цитата Сообщение от silent_1991 Посмотреть сообщение
При том, что в стандарте определены всего две перегрузки функции main:
C++
1
2
int main();
int main(int, char **);
Ни одна из них, как видите, не возвращает void, так что ваши оговорки на счёт void main() ошибочны.
Я ваще то на отсебятину намекал.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2012, 15:38     [C++] Хелп в чем ошибки
Еще ссылки по теме:

Подскажите пож. в чем ошибки!? C++
C++ В чем ошибки ?
В чем ошибки C++

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

Или воспользуйтесь поиском по форуму:
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,094
06.01.2012, 15:38     [C++] Хелп в чем ошибки #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 ~ $
Yandex
Объявления
06.01.2012, 15:38     [C++] Хелп в чем ошибки
Ответ Создать тему
Опции темы

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