[SOS] Ошибка или просто че-то не так?

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Lae
Сообщения: 3
Зарегистрирован: 02 дек 2007, 01:37

02 дек 2007, 01:47

Код: Выделить всё

#include <stdio.h>
int main()
{
    int n, m, i, j;
	int h[i][j];

    do
	{
		printf("Vvedite chislo uchenikov: ");
		scanf("%d",&n);
	}
	while((n<=0) || (n>=31));

	do
	{
		printf("Vvedite chislo predmetov: ");
		scanf("%d",&m);
	}
	while((m<=0) || (m>=15));

    for(i = 1; i <= n; i++)
    {
          for(j = 1; j <= m; j++)
          {
                printf("uchenik nomer %d ocenka %d: ",i,j);
                scanf("%d",&h[i][j]);
          }
    }

    for(i = 1; i <= n; i++)
    {
          for(j = 1; j <= n; j++)
          {
                printf("%d ",h[i][j]);
          }
          printf("\n");
    }
    getchar();
	getchar();
}
вроде ошибок нет, но почему-то прога крэшится... подскажите почему плиз? где ошибка?

если возможно, без бородатых анекдотов аля "в ДНК"...
vault0x54
Сообщения: 8
Зарегистрирован: 18 ноя 2007, 17:47

02 дек 2007, 02:12

Может переменные сперва стоит определить, а потом использовать ?
Lae
Сообщения: 3
Зарегистрирован: 02 дек 2007, 01:37

02 дек 2007, 02:25

а тебе не кажется, что все переменные определены?
Hawk
Сообщения: 215
Зарегистрирован: 17 фев 2004, 14:52
Откуда: СПб
Контактная информация:

02 дек 2007, 11:52

Lae писал(а):а тебе не кажется, что все переменные определены?
1-е. Массив h[j] инициализируется неинициализированными переменными. i и j неинициализированны. напиши h[31][15]; будет достаточно.

2-е. последний цикл -
for(i = 1; i <= n; i++)
{ for(j = 1; j <= n; j++)

j <= m; наверно должно быть
vault0x54
Сообщения: 8
Зарегистрирован: 18 ноя 2007, 17:47

02 дек 2007, 15:27

Lae писал(а):а тебе не кажется, что все переменные определены?
ага перепутал "определение переменной" и "инициализация переменной". :) Ну дык ночь на дворе была и туман.
Lae
Сообщения: 3
Зарегистрирован: 02 дек 2007, 01:37

02 дек 2007, 22:13

=))) пасиб... правда вчера сами уже разобрались, но Hawk все верно сказал =)
прога работает... УРА ТОВАРИЩИ =)
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

03 дек 2007, 09:48

Вообще удивлен, как ТАКОЕ компилятор проглотил:

Код: Выделить всё

  int i, j;
  int h[i][j];
У меня (MS VC++ 6.0) ругается:
error C2057: expected constant expression
Albor
Сообщения: 482
Зарегистрирован: 06 сен 2004, 13:34
Откуда: Днепропетровск

03 дек 2007, 13:40

Конечно, должен ругаться. i и j должны быть константами.
vault0x54
Сообщения: 8
Зарегистрирован: 18 ноя 2007, 17:47

03 дек 2007, 21:21

lcc-win32 не ругается (:
Ответить