Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 3 / 2
Регистрация: 22.11.2011
Сообщений: 168
1

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

04.12.2011, 20:14. Просмотров 1894. Ответов 25
Метки нет (Все метки)

а можно ли писать "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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2011, 20:14
Ответы с готовыми решениями:

Можно все require в самом начале?
Можно все require в самом начале? Т.е. система MVC, работаю через роутер. И в первый index.php...

При открытии файла каретка расположена в самом начале 1 строки, а не в начале 3
Доброго времени суток! Интересует вопрос, почему при открытии файла каретка расположена в самом...

Зависает в самом начале установки
Всем доброй ночи, нужен ваш хелп, гуру! Купил второй системник, по работе необходимо. Собрал я...

Зависание в самом начале загрузки
Доброго времени! Ситуация такова, включаю комп, загружается до момента когда должна идти загрузка с...

25
50 / 50 / 12
Регистрация: 22.05.2011
Сообщений: 326
04.12.2011, 20:17 2
Можно, но обязательно перед ее использованием.

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

Не по теме:

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

0
3 / 3 / 2
Регистрация: 22.11.2011
Сообщений: 168
04.12.2011, 20:21  [ТС] 4
Цитата Сообщение от go Посмотреть сообщение

Не по теме:

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

что вам в нём не нравится? какие образом его можно форматировать?
0
go
Эксперт С++
3639 / 1371 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
04.12.2011, 20:22 5
nicenice, например (если сами не умеете), вставте в студию, выделите и нажмите Ctrl+K затем Ctrl+F
0
Каратель
Эксперт С++
6585 / 4006 / 400
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
04.12.2011, 20:24 6
Цитата Сообщение от nicenice Посмотреть сообщение
что вам в нём не нравится? какие образом его можно форматировать?
Книжки/газеты/журналы читали? Видели там слова отделены пробелами, предложения точками, а логически завершенная мысль абзацами, да еще и с красной строки)
0
Заблокирован
04.12.2011, 20:40 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 *.
}
1
3 / 3 / 2
Регистрация: 22.11.2011
Сообщений: 168
04.12.2011, 20:54  [ТС] 8
спасибо, всё скомпилось!
0
25 / 14 / 4
Регистрация: 11.11.2011
Сообщений: 94
04.12.2011, 20:56 9
C++
1
int main (void)
а так можно писать???и что это значит?
0
Заблокирован
04.12.2011, 20:59 10
Цитата Сообщение от vikichocolate Посмотреть сообщение
C++
1
int main (void)
а так можно писать???и что это значит?
Это означает объявление функции main, которая является главной точкой входа в программу на С. Это объявление означает, что функция возвращает значение типа int и не имеет параметров.
0
25 / 14 / 4
Регистрация: 11.11.2011
Сообщений: 94
04.12.2011, 21:02 11
просто я пишу всегда

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

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


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


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

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

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

в C
int main(), int main(void) - это разные вещи, первое определение - определение в старом стиле (до 89 года), означающее, что функция может принимать неопределённое количество параметров неопределённого типа
второе определение - определение в новом стиле, когда точно указывается количество аргументов и тип каждого
0
go
Эксперт С++
3639 / 1371 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
05.12.2011, 17:47 16
Цитата Сообщение от accept Посмотреть сообщение
второе определение - определение в новом стиле, когда точно указывается количество аргументов и тип каждого
Вообще-то оно означает, что функция не принимает параметры, это и контролирует компилятор!
0
4844 / 3265 / 465
Регистрация: 10.12.2008
Сообщений: 10,569
05.12.2011, 23:23 17
Цитата Сообщение от go Посмотреть сообщение
Вообще-то оно означает, что функция не принимает параметры, это и контролирует компилятор!
пустых аргументов не бывает, поэтому void обрабатывается, как отсутствие аргументов
0
go
Эксперт С++
3639 / 1371 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
06.12.2011, 13:45 18
Цитата Сообщение от accept Посмотреть сообщение
пустых аргументов не бывает
В смысле??? Т.е. так писать нельзя
C
1
int fun ();
0
Эксперт С++
5034 / 3094 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
06.12.2011, 16:54 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;
}
Почувствуйте разницу
0
go
Эксперт С++
3639 / 1371 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
06.12.2011, 17:00 20
silent_1991, правильно, то , что и пытаюсь я объяснить accept

Цитата Сообщение от accept Посмотреть сообщение
int main(), int main(void) - это разные вещи, первое определение - определение в старом стиле (до 89 года), означающее, что функция может принимать неопределённое количество параметров неопределённого типа
второе определение - определение в новом стиле, когда точно указывается количество аргументов и тип каждого
Нет никаких аргументов.
Функция не принимает аргументы из командной строки, и компилятор это контролирует, вот что значит
C
1
int main (void)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2011, 17:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Курсовая. Застрял в самом начале
Нужно создать форму с таблицей состоящую из 2-х столбцов. Первый столбец должен быть уже заполнен...

Зависает на лого установки в самом начале
День добрый. Столкнулся с такой проблемой что при попытке установки с флешки Win8/8.1/10, ноут...

Вылазит ошибка в самом начале кода
Доброго времени. Подскажите новичку в ассемблере)) Есть прога(не моя) , говорят, рабочая, а у меня...

Как открыть форму в самом начале?
Почему то когда я открываю форму, она открывается не в начале, а в середине. Перерыл уже все...


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

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

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