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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ketler
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 15
#1

Почему не работает??? - C++

02.07.2011, 12:19. Просмотров 258. Ответов 1
Метки нет (Все метки)

Прога должна считать количество нулевых элементов, и элементов в диапазоне от 7 до 10. А на экран выводится какие-то отрицательные значения, причем эти значения не изменяются при вводе разных массивов. Что не так ?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// pr1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
#define I 3
#define J 4
 
// прототипы функций
void inputmas(int [I][J], char);
void raschet(int [I][J], int& , int& );
void printmas(int [I][J], char);
void printrez(int [I][J], char, int, int);
 
int main()
{
 
  int c[I][J], d[I][J], kol, nul;
  setlocale(LC_ALL, "Russian");
  inputmas(c,'c');                  // вызовы функций
  raschet(c, nul, kol);
  printrez(c,'c', kol, nul);
  system("pause");
  inputmas(d,'d');
  raschet(d, nul, kol);
  printrez(d,'d', kol, nul);
  system("pause");
  return 0;
   
}
 
// определение функции ввода массива
void inputmas(int m[I][J], char im)
{  
  int i,j;
  cout << "\nВводим массив " << im << "\n";
  for (i=0; i<I; i++)
    for ( j=0; j<J; j++)
    {
      cout << im << " [" << i << " ][ " << j << " ] = ";
      cin >> m[i][j];
    }
}
 
// определение функции расчета 
void raschet (int x[I][J], int& nul, int& kol)
{ 
    for (int i=0; i<I; i++)
        for (int j=0; j<J; j++)
    {
      if ( x[i][j]==0 )
        nul++;
    }
        for (int i=0; i<I; i++)
            for(int j=0; j<J; j++)
    {
      if (x[i][j]>=7 && x[i][j]<=10)
      kol++;
    }
 
}
 
 
// определение функции вывода массива на экран
void printmas(int x[I][J], char immas)
{   int i,j;
  cout << "\nМассив " << immas ;
  for (i=0; i<I; i++)
    {
      cout << "\n";
      for(j=0; j<J; j++)
    {
      cout.width(8);     // минимальное кол-во позиций
      cout << x[i][j];
    }
     }
}
// определение функции вывода
void printrez(int x[I][J], char immas, int kol, int nul)
{  
  printmas(x,immas);   // вызываем функции вывода массива
  cout << "\n\nКоличество элементов в интервале от 7 до 10 =" << kol;
  cout << "\n Количество нулевых эелементов массива = " << nul <<" \n";
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2011, 12:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не работает??? (C++):

Почему выводится в виде таблицы и почему не работает сортировка - C++
почему выводится в виде таблицы? почему не работает сортировка? и как туда можно вставить классы комнат? hotel.h #include...

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Почему в библиотеке не работает то, что спокойно работает в программе? - C++
День всем добрый! Я здесь решил собрать библиотеку для конструктора игр Game Maker. Хотел поэкспериментировать. Как всегда, у...

Почему в динамическом массиве не работает то, что работает со статическим? - C++
Программа зависает #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; using namespace std; int main() { ...

Почему не работает cin.clear() и как работает sync()? - C++
#include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; char*input(char*ch,int&amp;n){ cin.getline(ch,20); //cin.sync(); ...

Не могу понять почему не работает (или правильно не работает) - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; int i,j; cout&lt;&lt;&quot;nachalnya...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
grizlik78
Эксперт С++
1913 / 1445 / 113
Регистрация: 29.05.2011
Сообщений: 3,001
02.07.2011, 12:27 #2
Просто комментарии от другой программы (были), вот и не работает
А если серьёзно, то переменные kol и nul нигде не инициализируются, поэтому результат непредсказуем.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2011, 12:27
Привет! Вот еще темы с ответами:

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? - C++
Есть такая функция: void Array::SetStartIndexes(sz3_Arr_t *array) { start_index.reserve(array-&gt;size()); ...

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему? - C++
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland Developer Studio, а Visual Studio 2008 пишет, что проэкт...

почему не работает? - C++
господа почему не правельно работает программа? #include &lt;cstdio&gt; #include&lt;iostream&gt; using namespace std; int main() { ...

Почему не работает if-else - C++
Привет, форумчане! Значицца, так, дано задание (опущу ненужное) задать диапазон массива от 1 до 20. &gt;Если да, то выполнять следующее...


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

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

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