error: expected unqualified-id before ‘{’ token в чем проблема?
#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;
}
Ответы (1 шт):
Запись 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);