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

Задача на массивы. Необходимо исправить код - C++

Восстановить пароль Регистрация
 
Ломтев
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
03.02.2012, 13:09     Задача на массивы. Необходимо исправить код #1
Исходный код:::


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
87
88
89
90
91
92
93
#include <iostream.h>
#include<conio.h>
#define I 3
#define J 4
 
void inputmas(float[I][J],char);
void raschet(float[I][J],int*,int*);
void printmas(float[I][J],char);
void printrez(float[I][J],char,int,int);
 
void main()
{
 float c[I][J],d[I][J];
 int kolnulc,kolelemc,kolnuld,kolelemd;
 inputmas(c,'c');
 inputmas(d,'d');
 raschet(c,&kolnulc,&kolelemc);
 printrez(c,'c',kolnulc,kolelemc);
 raschet(d,&kolnuld,&kolelemd);
 printrez(d,'d',kolnuld,kolelemd);
 getch();
}
 
void inputmas(float m[I][J], char im)
{
 int i,j;
 cout<<"\nVvodim massiv "<<im<<"\n";
 for (i=0;i<I;i++)
  for (j=0;j<J;j++)
  {
   cout<<im<<"["<<i<<"]["<<j<<"] = ";
   cin>>m[i][j];
 
  }
}
 
 
 
 void raschet(float x[I][J], int *kolnul, int *kolelem)
 
  {
    int i,j;
    *kolnul=0;
    *kolelem=0;
 
 
 
     for (i=0;i<I;i++)
      for (j=0;j<J;j++)
       {
    if(x[i][j]>4)
    if (x[i][j]<11)
        {
        kolelem++;
        }
    if (x[i][j]==0)
    {
    kolnul++;
        }
 
 
       }
 
    }
 
 
 
  void printmas(float x[I][J], char immas)
   {
     int i,j;
     cout.setf(ios::showpoint|ios::fixed);
     cout<<"\nMassiv "<<immas;
     for (i=0;i<I;i++)
      {
      cout<<"\n";
      for (j=0;j<J;j++)
       {
       cout.width(8);
       cout.precision(2);
       cout<<x[i][j];
       }
 
      }
   }
 
 
   void printrez(float x[I][J], char immas, int kolnul, int kolelem)
 
     {
       printmas(x,immas);
       cout<<"\n\nKolichestvo nulevix elementov = "<<kolnul;
       cout<<"\nKolichestvo elementov massiva "<<immas<<" v diappazone ot 5 do 10 = "<<kolelem<<"\n";
     }
 Комментарий модератора 
Используйте теги форматирования кода!

 Комментарий модератора 
Именуйте темы осмысленно!


На выходе получается всякий бред)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2012, 13:09     Задача на массивы. Необходимо исправить код
Посмотрите здесь:

C++ Необходимо исправить ошибки
C++ Символьные массивы (исправить код)
C++ необходимо исправить ошибку в программе
C++ Необходимо исправить программу! Тема массивы
необходимо исправить ошибку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 13:17     Задача на массивы. Необходимо исправить код #2
Вот подправил - всё работает
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
#include <iostream>
#include <iomanip>
using namespace std;
#define I 3
#define J 4
 
void inputmas(float[][J],char);
void raschet(float[][J],int &,int &);
void printmas(float[][J],char);
void printrez(float[][J],char,int,int);
 
int main()
{
    float c[I][J],d[I][J];
    int kolnulc,kolelemc,kolnuld,kolelemd;
    inputmas(c,'c');
    inputmas(d,'d');
    raschet(c,kolnulc,kolelemc);
    printrez(c,'c',kolnulc,kolelemc);
    raschet(d,kolnuld,kolelemd);
    printrez(d,'d',kolnuld,kolelemd);
    system("pause");
    return 0;
}
 
void inputmas(float m[][J], char im)
{
    int i,j;
    cout<<"\nVvodim massiv "<<im<<"\n";
    for (i=0;i<I;i++)
    for (j=0;j<J;j++)
    {
        cout<<im<<"["<<i<<"]["<<j<<"] = ";
        cin>>m[i][j];
    }
}
 
void raschet(float x[][J], int &kolnul, int &kolelem)
{
    int i,j;
    kolnul=0;
    kolelem=0;
 
    for (i=0;i<I;i++)
    for (j=0;j<J;j++)
    {
        if(x[i][j]>4)
        if (x[i][j]<11)
        {
            kolelem++;
        }
        if (x[i][j]==0)
        {
            kolnul++;
        }
    }
}
 
 
 
void printmas(float x[][J], char immas)
{
    int i,j;
    cout.setf(ios::showpoint|ios::fixed);
    cout<<"\nMassiv "<<immas;
    for (i=0;i<I;i++)
    {
        cout<<"\n";
        for (j=0;j<J;j++)
        {
            cout.width(8);
            cout.precision(2);
            cout<<x[i][j];
        }
    }
}
 
 
void printrez(float x[][J], char immas, int kolnul, int kolelem)
 
{
    printmas(x,immas);
    cout<<"\n\nKolichestvo nulevix elementov = "<<kolnul;
    cout<<"\nKolichestvo elementov massiva "<<immas<<" v diappazone ot 5 do 10 = "<<kolelem<<"\n";
}
Миниатюры
Задача на массивы. Необходимо исправить код  
Ломтев
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
03.02.2012, 13:26  [ТС]     Задача на массивы. Необходимо исправить код #3
Мне нужно решить задачу с применением указателей(
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 13:37     Задача на массивы. Необходимо исправить код #4
Цитата Сообщение от Ломтев Посмотреть сообщение
Мне нужно решить задачу с применением указателей(
- тогда задание выложи - массив и так в функцию передаётся как указатель. Может с массивом надо через указатели работать???Вобще давай задание, а не свой код, по нему судить о том что тебе действительно надо невозможно...
Ломтев
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
03.02.2012, 13:42  [ТС]     Задача на массивы. Необходимо исправить код #5
Программу нужно написать в двух вариантах:
один с указателями, другой – со ссылками.

Общее задание - Даны вещественные массивы c[3][4], d[3][4].
В программе предусмотреть функции:
- ввода массивов с клавиатуры;
- расчета (все величина рассчитываются в одной функции)
- вывода исходных массивов и результатов поиска.

Определить количество нулевых элементов, количество элементов в интервале от 5
до 10

компилятор borland c++ 3
-=ЮрА=-
Заблокирован
Автор FAQ
03.02.2012, 13:51     Задача на массивы. Необходимо исправить код #6
Ломтев, теперь понятно, постараюсь помочь.
Цитата Сообщение от Ломтев Посмотреть сообщение
borland c++ 3
- будет под рукой только вечером
Ломтев
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
03.02.2012, 14:08  [ТС]     Задача на массивы. Необходимо исправить код #7
но в принципе я компилировал и на borland c++ 5 версии под codeblocks - просто мне подойдут варианты и под него, а под 3 компилятор я и сам код портану)

Добавлено через 14 минут
надеюсь на помощь, заранее спасибо!
-=ЮрА=-
Заблокирован
Автор FAQ
06.02.2012, 14:48     Задача на массивы. Необходимо исправить код #8
Цитата Сообщение от Ломтев Посмотреть сообщение
Программу нужно написать в двух вариантах:
один с указателями, другой – со ссылками.
Ломтев, всё таки я так и не понял, что по ссылке и по указателю
Если kolnulc,kolelemc - то по ссылке
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
void raschet(float[][J],int &,int &);
как раз вариант который я выложил во 2-м посте
Ломтев
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
06.02.2012, 14:58  [ТС]     Задача на массивы. Необходимо исправить код #9
это лаба по программированию - нужно в одном варианте программы использовать ссылки а в другом указатели, это две разные программы. то есть в одном варианте использовать void raschet(float[I][J],int &,int &); а во втором void raschet(float[I][J],int*,int*);
-=ЮрА=-
Заблокирован
Автор FAQ
06.02.2012, 15:41     Задача на массивы. Необходимо исправить код #10
Цитата Сообщение от Ломтев Посмотреть сообщение
а во втором void raschet(float[I][J],int*,int*);
- хорошо займусь по свободе!
-=ЮрА=-
Заблокирован
Автор FAQ
07.02.2012, 10:49     Задача на массивы. Необходимо исправить код #11
Цитата Сообщение от Ломтев Посмотреть сообщение
а в другом указатели, это две разные программы. то есть в одном варианте использовать void raschet(float[I][J],int &,int &); а во втором void raschet(float[I][J],int*,int*);
Вот по указателю
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
#include <iostream>
#include <iomanip>
using namespace std;
#define I 3
#define J 4
 
void inputmas(float[][J],char);
void raschet(float[][J],int *,int *);
void printmas(float[][J],char);
void printrez(float[][J],char,int *,int *);
 
int main()
{
    float c[I][J],d[I][J];
    int kolnulc,kolelemc,kolnuld,kolelemd;
    inputmas(c,'c');
    inputmas(d,'d');
    raschet(c,&kolnulc,&kolelemc);
    printrez(c,'c',&kolnulc,&kolelemc);
    raschet(d,&kolnuld,&kolelemd);
    printrez(d,'d',&kolnuld,&kolelemd);
    system("pause");
    return 0;
}
 
void inputmas(float m[][J], char im)
{
    int i,j;
    cout<<"\nVvodim massiv "<<im<<"\n";
    for (i=0;i<I;i++)
    for (j=0;j<J;j++)
    {
        cout<<im<<"["<<i<<"]["<<j<<"] = ";
        cin>>m[i][j];
    }
}
 
void raschet(float x[][J], int *kolnul, int *kolelem)
{
    int i,j;
    *kolnul=0;
    *kolelem=0;
    
    for (i=0;i<I;i++)
    for (j=0;j<J;j++)
    {
        if(x[i][j]>4)
        if (x[i][j]<11)
        {
            (*kolelem)++;
        }
        if (x[i][j]==0)
        {
            (*kolnul)++;
        }
    }
}
 
void printmas(float x[][J], char immas)
{
    int i,j;
    cout.setf(ios::showpoint|ios::fixed);
    cout<<"\nMassiv "<<immas;
    for (i=0;i<I;i++)
    {
        cout<<"\n";
        for (j=0;j<J;j++)
        {
            cout.width(8);
            cout.precision(2);
            cout<<x[i][j];
        }
    }
}
 
 
void printrez(float x[][J], char immas, int *kolnul, int *kolelem)
{
    printmas(x,immas);
    cout<<"\n\nKolichestvo nulevix elementov = "<<*kolnul;
    cout<<"\nKolichestvo elementov massiva "<<immas
        <<" v diappazone ot 5 do 10 = "<<*kolelem<<"\n";
}
Миниатюры
Задача на массивы. Необходимо исправить код  
Ломтев
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
07.02.2012, 10:58  [ТС]     Задача на массивы. Необходимо исправить код #12
Огромное спасибо!!! Все дело было в скобках))) (*kolnul)++ и (*kolelem)++; как я понимаю сработал приоритет операций?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2012, 12:46     Задача на массивы. Необходимо исправить код
Еще ссылки по теме:

Необходимо исправить код (программа считает длину поезда) C++
C++ Sh(x) Необходимо написать код
Исправить в тексте множественное число существительных на единственное там, где это необходимо C++

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
07.02.2012, 12:46     Задача на массивы. Необходимо исправить код
  #13

Не по теме:

Цитата Сообщение от Ломтев Посмотреть сообщение
как я понимаю сработал приоритет операций?
- на мой взгляд тут не в приоритете дело - скобки в данном случае означали, что нужно применять действие именно к указателю (ко всему обїекту в скобках), а не инкрементировать kolelem - без скобок запись означала бы указатель на значение kolelem = kolelem + 1

Yandex
Объявления
07.02.2012, 12:46     Задача на массивы. Необходимо исправить код
Ответ Создать тему
Опции темы

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