Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
10 / 10 / 1
Регистрация: 27.06.2013
Сообщений: 151
1

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

25.08.2013, 11:35. Показов 502. Ответов 6
Метки нет (Все метки)

Имеется задача .
Имеется ее решение:
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";
        }
}
Вопрос: "Где у меня ошибка?!?!?!?!?!"
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.08.2013, 11:35
Ответы с готовыми решениями:

Зашел в тупик
Из-за формулы зашел немного в тупик. Вот здесь знаменатель не должен быть равен 0 и само выражение...

Ужас, зашел в тупик
Пишу прилагу, где надо отображать картинки столиц мира... но устал гуглить и искать подходы, где...

Зашел в тупик с курсовой
Проблема в том что надо создать базу которая будет фиксировать пропуск учащихся занятий и потом...

Зашел в тупик с отчетом...
Добрый вечер, уважаемые форумчане... Прочитал всю ветку данного раздела форума на слово &quot;отчет&quot; по...

6
59 / 58 / 7
Регистрация: 03.02.2013
Сообщений: 167
25.08.2013, 13:31 2
а где return 0; в конце функции main()
0
50 / 50 / 9
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
25.08.2013, 13:33 3
Цитата Сообщение от Kins Посмотреть сообщение
а где return 0; в конце функции main()
Он не обязателен.
0
2605 / 2195 / 234
Регистрация: 03.07.2012
Сообщений: 7,916
Записей в блоге: 1
25.08.2013, 13:35 4
А что записано в массиве char? Может, он минами заполнен?
0
346 / 291 / 37
Регистрация: 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;
  }
1
10 / 10 / 1
Регистрация: 27.06.2013
Сообщений: 151
25.08.2013, 15:48  [ТС] 6
Nekto можете объяснить свой код?!?!?!?!?!? Поскольку я новичок в такому типу программирования!
0
346 / 291 / 37
Регистрация: 23.03.2012
Сообщений: 838
25.08.2013, 16:02 7
Цитата Сообщение от ALEXKIRNAS Посмотреть сообщение
Nekto можете объяснить свой код?!?!?!?!?!? Поскольку я новичок в такому типу программирования!
Ну я частично в сишном стиле написал с динамическим размером массива, чтобы не использовать лишнюю память. Когда создаёшь массив, нужно ему какие-то значения назначить. Неизвестно что будет в ячейках изначально. Там могут быть '*', что испортит подсчет.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2013, 16:02

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Зашел в тупик на фреймворках
Уважаемые форумчане.....начал изучение питона...вроде все хорошо, но столкнулся с фласком и...

Люди, помогите, зашел в тупик!
Уважаемые! Есть сайт http://setun-alg.ru/ оптимизирую его уже в течение месяца. до этого был -...

Зашел в тупик с выбором ноутбука
Решил приобрести свой первый ноут и остановился на 3 вариантах : 1). Asus K56CM (K56CM-XX055D) ...

зашел в тупик ... разьясните ситуацию ;))
Я новичек в сео, но понимаю, что к чему, уже давольно таки неплохо. Но чо то не пойму одну вещь....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.