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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: [SOS] Ошибка или просто че-то не так?

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

vault0x54 » 03 дек 2007, 21:21

lcc-win32 не ругается (:

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

Albor » 03 дек 2007, 13:40

Конечно, должен ругаться. i и j должны быть константами.

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

BBB » 03 дек 2007, 09:48

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

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

  int i, j;
  int h[i][j];
У меня (MS VC++ 6.0) ругается:
error C2057: expected constant expression

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

Lae » 02 дек 2007, 22:13

=))) пасиб... правда вчера сами уже разобрались, но Hawk все верно сказал =)
прога работает... УРА ТОВАРИЩИ =)

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

vault0x54 » 02 дек 2007, 15:27

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

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

Hawk » 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; наверно должно быть

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

Lae » 02 дек 2007, 02:25

а тебе не кажется, что все переменные определены?

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

vault0x54 » 02 дек 2007, 02:12

Может переменные сперва стоит определить, а потом использовать ?

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

Lae » 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();
}
вроде ошибок нет, но почему-то прога крэшится... подскажите почему плиз? где ошибка?

если возможно, без бородатых анекдотов аля "в ДНК"...

Вернуться к началу