Форум программистов, компьютерный форум CyberForum.ru

Зашел в тупик! - C++

Восстановить пароль Регистрация
 
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
25.08.2013, 11:35     Зашел в тупик! #1
Имеется задача http://********/index.asp?main=task&id_task=234 .
Имеется ее решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <iostream>
 
int main ()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int m,n,k, i, z, r;
    std::cin >> n >> m >> k;
    char a[202][202];
    for(; k; k--)
    {
        std::cin >> i >> z;
        a[i][z]='*';
    }
    for(i=1; i<=n; i++) 
        for(z=1; z<=m; z++)
    {
        r=0;
        if(a[i][z]=='*') continue;
        if(a[i-1][z]=='*')  r++;
        if(a[i-1][z+1]=='*')  r++;
        if(a[i-1][z-1]=='*')  r++;
        if(a[i][z+1]=='*')  r++;
        if(a[i][z-1]=='*')  r++;
        if(a[i+1][z]=='*')  r++;
        if(a[i+1][z+1]=='*')  r++;
        if(a[i+1][z-1]=='*')  r++;
        if(!r) a[i][z]='.';
        else a[i][z]=r+48;
    }
    for(i=1; i<=n; i++)
        {
            for(z=1; z<=m; z++) std::cout << a[i][z];
            std::cout << "\n";
        }
}
Вопрос: "Где у меня ошибка?!?!?!?!?!"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 11:35     Зашел в тупик!
Посмотрите здесь:

MS Access Зашел в тупик с отчетом...
C++ Тупик с массивами
Зашел в тупик C++
Тупик C++
Зашел в тупик с выбором ноутбука
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kins
 Аватар для Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
25.08.2013, 13:31     Зашел в тупик! #2
а где return 0; в конце функции main()
Hugra
 Аватар для Hugra
47 / 47 / 1
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
25.08.2013, 13:33     Зашел в тупик! #3
Цитата Сообщение от Kins Посмотреть сообщение
а где return 0; в конце функции main()
Он не обязателен.
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,618
Записей в блоге: 1
25.08.2013, 13:35     Зашел в тупик! #4
А что записано в массиве char? Может, он минами заполнен?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 15:41     Зашел в тупик! #5
Мне кажется, что проблема в незанулении начального массива. Вот написал по такому же алгоритму, работает.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <cstdio>
bool CheckCell(char **array, size_t row, size_t column, size_t size_row, size_t size_column)
  {
  if (row<0||column<0||row>=size_row||column>=size_column)
    return false;
  return array[row][column]=='*';
  }
 
int main()
  {
  FILE* f;
  f=fopen("input.txt","r");
  size_t N,M,K;
  fscanf(f,"%d %d %d",&N,&M,&K);
  char ** field=new char*[N];
  for (size_t i=0;i<N;++i)
    {
    field[i]=new char[M];
    for (size_t j=0;j<M;++j)
      field[i][j]=0;
    }
  for (size_t i=0;i<K;++i)
    {
    size_t row,column;
    fscanf(f,"%d %d",&row,&column);
    field[row-1][column-1]='*';
    }
  fclose(f);
  f=fopen("output.txt","w");
  for (size_t i=0;i<N;++i)
    {
    for (size_t j=0;j<M;++j)
      {
      if (field[i][j]!='*')
        {
        size_t count=0;
        count+=CheckCell(field,i-1,j-1,N,M);
        count+=CheckCell(field,i-1,j,N,M);
        count+=CheckCell(field,i-1,j+1,N,M);
        count+=CheckCell(field,i,j-1,N,M);
        count+=CheckCell(field,i,j+1,N,M);
        count+=CheckCell(field,i+1,j-1,N,M);
        count+=CheckCell(field,i+1,j,N,M);
        count+=CheckCell(field,i+1,j+1,N,M);
        if (count==0) 
          field[i][j]='.';
        else
          field[i][j]=count+'0';
        }
      fprintf(f,"%c",field[i][j]);
      }
    if (i!=N-1)
      fprintf(f,"\n");
    }
  for (size_t i=0;i<N;++i)
    delete [] field[i];
  delete [] field;
  fclose(f);
  return 0;
  }
ALEXKIRNAS
10 / 10 / 2
Регистрация: 27.06.2013
Сообщений: 151
25.08.2013, 15:48  [ТС]     Зашел в тупик! #6
Nekto можете объяснить свой код?!?!?!?!?!? Поскольку я новичок в такому типу программирования!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2013, 16:02     Зашел в тупик!
Еще ссылки по теме:

Зашел в тупик с курсовой Delphi БД
C++ большой тупик
1С 1C 8.x Зашел в тупик, я еще новичок в 1С

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 16:02     Зашел в тупик! #7
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Nekto можете объяснить свой код?!?!?!?!?!? Поскольку я новичок в такому типу программирования!
Ну я частично в сишном стиле написал с динамическим размером массива, чтобы не использовать лишнюю память. Когда создаёшь массив, нужно ему какие-то значения назначить. Неизвестно что будет в ячейках изначально. Там могут быть '*', что испортит подсчет.
Yandex
Объявления
25.08.2013, 16:02     Зашел в тупик!
Ответ Создать тему
Опции темы

Текущее время: 18:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru