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

Можно ли писать int не в самом начале? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
04.12.2011, 20:14     Можно ли писать int не в самом начале? #1
а можно ли писать "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
42
43
44
45
46
47
48
#include <stdio.h>
#include <conio.h>
 
int main (void)
{
char c;
printf ("tak");
c=getch();
switch (c)
{
case '1': printf("rrrrr"); break;
case '2': printf("mmmm"); break;
case '3': 
const int N=1;
const int T=2;
const int H=3;
int A[N][T],B[T][H],K[N][H];
int i=0,j=0,k=0,a;
 
printf ("BBeduTe IIePBbIy MaccuB\n");
for (i=0;i<N;i++)
for (k=0;k<T;k++)
{
scanf("%d", &A[i][k]);
}
printf ("BBeduTe BTOPOy MaccuB\n");
for (k=0;k<T;k++)
for (j=0;j<H;j++)
{
scanf("%d", &B[k][j]);
}
for (i=0;i<N;i++)
for (j=0;j<H;j++)
{
K[i][j]=0;
for(k=0;k<T;++k)                 
K[i][j]+= A[i][k]*B[k][j];
}  
for (i=0;i<N;i++)
for (j=0;j<H;j++)
{
printf("%d\n",K[i][j]);
} 
break;
}
getch();
return 1;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
04.12.2011, 20:17     Можно ли писать int не в самом начале? #2
Можно, но обязательно перед ее использованием.

Насчет кода, расскажите хоть что за программа.
go
04.12.2011, 20:20
  #3

Не по теме:

nicenice, если хотите, чтобы помогли - отформатируйте код, ошибки, думаю есть, но код не читаем, и это нужно Вам

nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
04.12.2011, 20:21  [ТС]     Можно ли писать int не в самом начале? #4
Цитата Сообщение от go Посмотреть сообщение

Не по теме:

nicenice, если хотите, чтобы помогли - отформатируйте код, ошибки, думаю есть, но код не читаем, и это нужно Вам

что вам в нём не нравится? какие образом его можно форматировать?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 20:22     Можно ли писать int не в самом начале? #5
nicenice, например (если сами не умеете), вставте в студию, выделите и нажмите Ctrl+K затем Ctrl+F
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.12.2011, 20:24     Можно ли писать int не в самом начале? #6
Цитата Сообщение от nicenice Посмотреть сообщение
что вам в нём не нравится? какие образом его можно форматировать?
Книжки/газеты/журналы читали? Видели там слова отделены пробелами, предложения точками, а логически завершенная мысль абзацами, да еще и с красной строки)
Сыроежка
Заблокирован
04.12.2011, 20:40     Можно ли писать int не в самом начале? #7
Цитата Сообщение от nicenice Посмотреть сообщение
а можно ли писать "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
42
43
44
45
46
47
48
#include <stdio.h>
#include <conio.h>
 
int main (void)
{
char c;
printf ("tak");
c=getch();
switch (c)
{
case '1': printf("rrrrr"); break;
case '2': printf("mmmm"); break;
case '3': 
const int N=1;
const int T=2;
const int H=3;
int A[N][T],B[T][H],K[N][H];
int i=0,j=0,k=0,a;
 
printf ("BBeduTe IIePBbIy MaccuB\n");
for (i=0;i<N;i++)
for (k=0;k<T;k++)
{
scanf("%d", &A[i][k]);
}
printf ("BBeduTe BTOPOy MaccuB\n");
for (k=0;k<T;k++)
for (j=0;j<H;j++)
{
scanf("%d", &B[k][j]);
}
for (i=0;i<N;i++)
for (j=0;j<H;j++)
{
K[i][j]=0;
for(k=0;k<T;++k)                 
K[i][j]+= A[i][k]*B[k][j];
}  
for (i=0;i<N;i++)
for (j=0;j<H;j++)
{
printf("%d\n",K[i][j]);
} 
break;
}
getch();
return 1;
}
Если вы говорите. что компилятор у вас сообщает об ошибке, то это означает, что ваш компилятор не поддерживает текущий стандарт языка С, который носит название С99, а соответствует более раннему стандарту С89. В этом более раннем стандарте нельзя объявлять переменные в любом месте программы, а только либо в глобальной области видимости, или в начале котодового блока. Поэтому ваше объявление

C++
1
2
3
4
5
6
case '3': 
const int N=1;
const int T=2;
const int H=3;
int A[N][T],B[T][H],K[N][H];
int i=0,j=0,k=0,a;
некорректно. Но если бы вы после предложения case '3': заключили объявления переменных в кодовый блок, то есть заключив эту часть кода в фигурные скобки, то ваш код компилировался бы.

C++
1
2
3
4
5
6
7
8
9
case '3':
{ 
   const int N=1;
   const int T=2;
   const int H=3;
   int A[N][T],B[T][H],K[N][H];
   int i=0,j=0,k=0,a;
   /* продолжение кодового блока для этого case *.
}
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
04.12.2011, 20:54  [ТС]     Можно ли писать int не в самом начале? #8
спасибо, всё скомпилось!
vikichocolate
 Аватар для vikichocolate
25 / 14 / 1
Регистрация: 11.11.2011
Сообщений: 94
04.12.2011, 20:56     Можно ли писать int не в самом начале? #9
C++
1
int main (void)
а так можно писать???и что это значит?
Сыроежка
Заблокирован
04.12.2011, 20:59     Можно ли писать int не в самом начале? #10
Цитата Сообщение от vikichocolate Посмотреть сообщение
C++
1
int main (void)
а так можно писать???и что это значит?
Это означает объявление функции main, которая является главной точкой входа в программу на С. Это объявление означает, что функция возвращает значение типа int и не имеет параметров.
vikichocolate
 Аватар для vikichocolate
25 / 14 / 1
Регистрация: 11.11.2011
Сообщений: 94
04.12.2011, 21:02     Можно ли писать int не в самом начале? #11
просто я пишу всегда

C++
1
void main()
nicenice
3 / 3 / 0
Регистрация: 22.11.2011
Сообщений: 168
04.12.2011, 21:21  [ТС]     Можно ли писать int не в самом начале? #12
Цитата Сообщение от Сыроежка Посмотреть сообщение
Это означает объявление функции main, которая является главной точкой входа в программу на С. Это объявление означает, что функция возвращает значение типа int и не имеет параметров.
я имел ввиду вот этот int, который память выделяет int i=0,j=0,k=0,a;

кстати насчёт этого "int main ()" - что значит "возвращает"? куда он возвращает?
и ещё вопрос, я сейчас пишу проги, где "функция main не имеет параметров", а когда она будет их иметь? при каком условии?
так же хотелось бы узнать int main (void) ----int main() ----void main () , это одно и тоже?
vikichocolate
 Аватар для vikichocolate
25 / 14 / 1
Регистрация: 11.11.2011
Сообщений: 94
04.12.2011, 21:34     Можно ли писать int не в самом начале? #13
вот
int main() и void main () отличаются лишь типом возвр объекта. ну это тип того, что вычисляется в функции. void это значит что ничего не вернет, а int вернет ноль если правильно все и 1 если неправильно(или наоборот я не помню)


a вот int main (void) это какая-то очень хитрая штука. как я понимаю, то это одновременно и int main() и void main()... может параметр типа int а вернуть ничего не должна...


много загадок
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 21:38     Можно ли писать int не в самом начале? #14
Цитата Сообщение от vikichocolate Посмотреть сообщение
a вот int main (void) это какая-то очень хитрая штука. как я понимаю, то это одновременно и int main() и void main()... может параметр типа int а вернуть ничего не должна...
не правильно понимаете
int - тип вовращаемого значения, целое число
return число;
вот что она вернет, а void в данном примере значит, что функция ничего не принимает!!!

Добавлено через 14 секунд
Цитата Сообщение от vikichocolate Посмотреть сообщение
много загадок
Все просто.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.12.2011, 13:08     Можно ли писать int не в самом начале? #15
Цитата Сообщение от nicenice Посмотреть сообщение
что значит "возвращает"? куда он возвращает?
программа завершается и можно просмотреть её код завершения
когда делаешь скрипты, можно проверять, как закончилась программа
(на основе кода можно принимать решение о дальшнейших действиях скрипта)
функция main() особенная и не должна иметь тип возвращаемого значения void

в C++
int main(), int main(void) - это одно и то же

в C
int main(), int main(void) - это разные вещи, первое определение - определение в старом стиле (до 89 года), означающее, что функция может принимать неопределённое количество параметров неопределённого типа
второе определение - определение в новом стиле, когда точно указывается количество аргументов и тип каждого
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.12.2011, 17:47     Можно ли писать int не в самом начале? #16
Цитата Сообщение от accept Посмотреть сообщение
второе определение - определение в новом стиле, когда точно указывается количество аргументов и тип каждого
Вообще-то оно означает, что функция не принимает параметры, это и контролирует компилятор!
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.12.2011, 23:23     Можно ли писать int не в самом начале? #17
Цитата Сообщение от go Посмотреть сообщение
Вообще-то оно означает, что функция не принимает параметры, это и контролирует компилятор!
пустых аргументов не бывает, поэтому void обрабатывается, как отсутствие аргументов
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2011, 13:45     Можно ли писать int не в самом начале? #18
Цитата Сообщение от accept Посмотреть сообщение
пустых аргументов не бывает
В смысле??? Т.е. так писать нельзя
C
1
int fun ();
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
06.12.2011, 16:54     Можно ли писать int не в самом начале? #19
go, откомпилируйте код Си-компилятором:
C
1
2
3
4
5
6
7
8
9
10
11
12
void func()
{
}
 
int main(void)
{
    func();
    func(0);
    func(0, 1);
    
    return 0;
}
А теперь этот:
C
1
2
3
4
5
6
7
8
9
10
11
12
void func(void)
{
}
 
int main(void)
{
    func();
    func(0);
    func(0, 1);
    
    return 0;
}
Почувствуйте разницу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 17:00     Можно ли писать int не в самом начале?
Еще ссылки по теме:

Ребят что означаеют две звездочки в самом начале когда объявляем массив C++
Можно писать в консоли 20 шрифтом C++
Можно ли писать вложенные лямбды? (с++11) C++

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2011, 17:00     Можно ли писать int не в самом начале? #20
silent_1991, правильно, то , что и пытаюсь я объяснить accept

Цитата Сообщение от accept Посмотреть сообщение
int main(), int main(void) - это разные вещи, первое определение - определение в старом стиле (до 89 года), означающее, что функция может принимать неопределённое количество параметров неопределённого типа
второе определение - определение в новом стиле, когда точно указывается количество аргументов и тип каждого
Нет никаких аргументов.
Функция не принимает аргументы из командной строки, и компилятор это контролирует, вот что значит
C
1
int main (void)
Yandex
Объявления
06.12.2011, 17:00     Можно ли писать int не в самом начале?
Ответ Создать тему
Опции темы

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