error: expected unqualified-id before ‘{’ token в чем проблема?

Рейтинг: 0Ответов: 1Опубликовано: 01.04.2023
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctime>
#define s 4
int A[s][s];

int main (void);
{
    int I, r, vr;
 bool fl;

printf("Matrica A: \n");
srand(time(0));

for (I=0; I<s; I++)
{for (r=0; r<s; r++)
{A[I][r]=I+rand() % 10;
printf("%3d",A[I][r]); }
printf("\n");}

do
{printf("\n Vvedite N stolbika of 0 do%2d ",s-1);
scanf("%d",&r);
if ((r>=0)&&(r<=s-1)) printf("\n Rezul’tat dlja %d- stolbika \n",r); else printf(" Takogo stolbika netin\n "); 
}while ((r<0)||(r>=s));

do 
fl=0;
    

for (I=0; I<s-I; I++);
if (A[I][r]> A[I+1][r]);
{vr=A[I][r];
(A[I][r]=A[I+1][r]);
A[I+1][r]=vr;
fl=1;}

 while (fl==1);

printf("Matrica A: \n");

fl (I=0; I<s; I++) ;
{ for (r-0; r<s; r++) printf("%3d",A[I][r]); 
printf("\n");}

return 0;
}

Ответы

▲ 2

Запись int main (void); означает предварительную декларацию функции как одно выражение. И дальнейший код с { .. компилятор не может анализировать.
Полное объявление функции нужно делать без ;.

int main (void){
...
}

Теперь про выражения :
Цикл do while внутри себя должен содержать одно выражение.

do statement while ( expression ) ;

А вы записали туда много действий. Чтобы ошибки компиляции не было, нужно эти действия заключить в фигурные скобки, тогда это как раз и будет одно выражение.

do {
  fl=0;
  for (I=0; I<s-I; I++)
    ;
  if (A[I][r]> A[I+1][r])
    ; 
  { vr=A[I][r];
    (A[I][r]=A[I+1][r]);
    A[I+1][r]=vr;
    fl=1;
  }
} while (fl==1);

Про команды for и if : после них тоже должно стоять одно выражение. А вы записали после них точки с запятой, а это подразумевается пустым выражением и получается цикл с пустым выражением и сравнение с пустым выражением, что по сути бессмысленно.
Эти точки с запятой нужно убрать и писать программу, соблюдая стандартный стиль с отступами пробелов, чтобы было всё понятно вам и всем остальным.

do {
  fl=0;
  for (I=0; I<s-I; I++)
    if (A[I][r]> A[I+1][r]) {
      vr=A[I][r];
      (A[I][r]=A[I+1][r]);
      A[I+1][r]=vr;
      fl=1;
    }
} while (fl==1);