C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Объявление переменных до main'а
CooB
  Отправлено: 14.10.2006, 23:49


Ученик-кочегар

Группа: Участник
Сообщений: 4



Участнеги, помогите!
я ему:
CODE
int find(int i, int j){
...
а он мне:
Declaration syntax error (E2141)! sad.gif
А в MS Visual studio работает

Отредактировано CooB — 15.10.2006, 01:34
Crozy
Отправлено: 15.10.2006, 00:48


Ученик-кочегар

Группа: Участник
Сообщений: 6



Аффтор, убей себя об стену!

Видешь где в коде написано TForm1 *Form1;
Вот и объявляй под ним свои переменные smile.gif
CooB
Отправлено: 15.10.2006, 01:05


Ученик-кочегар

Группа: Участник
Сообщений: 4



у меня вообще консольное приложение. если это что-то меняет...
Arsa
Отправлено: 15.10.2006, 10:41


Дежурный стрелочник

Группа: Участник
Сообщений: 77



Вылож кусок кода где прога ругается.
Asher
Отправлено: 16.10.2006, 09:54


Мастер участка

Группа: Модератор
Сообщений: 550



Привет.

Отставить удаffщину.
И покажи кода побольше.
CooB
Отправлено: 17.10.2006, 14:01


Ученик-кочегар

Группа: Участник
Сообщений: 4



Пожалуйста. Прога считает количество 1-, 2-, 3- и 4-палубных кораблей на поле 10х10:

CODE
#include "stdio.h"
int one, two, three, four;
int pole[10][10];
int find(int i, int j){
int s=0;
if(pole[i+1][j]==1){
 pole[i+1][j]=0;
 return find(i+1, j)+1;
}
if(pole[i-1][j]==1){
 pole[i-1][j]=0;
 return find(i-1, j)+1;
}
if(pole[i][j-1]==1){
 pole[i][j-1]=0;
 return find(i, j-1)+1;
}
if(pole[i][j+1]==1){
 pole[i][j+1]=0;
 return find(i, j+1)+1;
}
 return 1;
}
int main(){
int i, j, e=0;
freopen("input.txt", "r", stdin);
for(i=0; i<10; i++){
 for(j=0; j<10; j++){
  scanf("%d", &pole[i][j]);
 }
}
freopen("output.txt", "w", stdout);
for(i=0; i<10; i++){
 for(j=0; j<10; j++){
  if(pole[i][j]==1){
   pole[i][j]=0;
   switch(find(i, j)){
    case 1: one++;
     break;
    case 2: two++;
     break;
    case 3: three++;
     break;
    case 4: four++;
     break;
    default :
     e=1;
     printf("input error");
     break;
   }
  }
 }
}
if(e==0){
printf("there are %d one-decker ships\n", one);
printf("there are %d two-decker ships\n", two);
printf("there are %d three-decker ships\n", three);
printf("there are %d four-decker ships\n", four);
}
return 0;
}
Admin
Отправлено: 17.10.2006, 16:20


Владимир

Группа: Администратор
Сообщений: 1190



CODE

#include "stdio.h"
int one, two, three, four;
int pole[10][10];
int find(int i, int j){
int s=0;
if(pole[i+1][j]==1){
pole[i+1][j]=0;
return find(i+1, j)+1;
}
if(pole[i-1][j]==1){
pole[i-1][j]=0;
return find(i-1, j)+1;
}
if(pole[i][j-1]==1){
pole[i][j-1]=0;
return find(i, j-1)+1;
}
if(pole[i][j+1]==1){
pole[i][j+1]=0;
return find(i, j+1)+1;
}
return 1;
}

int main(int argc, char* argv[])
{
int i, j, e=0;
freopen("input.txt", "r", stdin);
for(i=0; i<10; i++){
for(j=0; j<10; j++){
 scanf("%d", &pole[i][j]);
}
}
freopen("output.txt", "w", stdout);
for(i=0; i<10; i++){
for(j=0; j<10; j++){
 if(pole[i][j]==1){
  pole[i][j]=0;
  switch(find(i, j)){
   case 1: one++;
    break;
   case 2: two++;
    break;
   case 3: three++;
    break;
   case 4: four++;
    break;
   default :
    e=1;
    printf("input error");
    break;
  }
 }
}
}
if(e==0){
printf("there are %d one-decker ships\n", one);
printf("there are %d two-decker ships\n", two);
printf("there are %d three-decker ships\n", three);
printf("there are %d four-decker ships\n", four);
}
return 0;
}

//---------------------------------------------------------------------------
CooB
Отправлено: 18.10.2006, 07:05


Ученик-кочегар

Группа: Участник
Сообщений: 4



Мая твая не панимай: камментс, плиз.
PS: уж простите ламера
Admin
Отправлено: 18.10.2006, 16:13


Владимир

Группа: Администратор
Сообщений: 1190



Вставьте код — никаких Declaration syntax error он не дает.

Вернуться в Вопросы программирования в C++Builder