Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28

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

03.02.2012, 13:09. Показов 1301. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Исходный код:::


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";
     }
 Комментарий модератора 
Используйте теги форматирования кода!

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


На выходе получается всякий бред)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2012, 13:09
Ответы с готовыми решениями:

Необходимо исправить программу! Тема массивы
#include &lt;iostream&gt; #include &lt;StdAfx.h&gt; using namespace std; int main() { setlocale ( LC_ALL, &quot;Rus&quot; ); int n = 0; ...

Необходимо исправить код
Дан неориентированный граф городов. Задача: найти кратчайший путь из одной точки в другую. Но почему при вводе вершин Тернополь - Днепр у...

Необходимо исправить код на Java!
Не работает код. Помогите разобраться,в чём дело и исправить их! Спасибо огромное! /*import java.awt.EventQueue; import java.awt.*; ...

12
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
03.02.2012, 13:17
Вот подправил - всё работает
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";
}
Миниатюры
Задача на массивы. Необходимо исправить код  
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
03.02.2012, 13:26  [ТС]
Мне нужно решить задачу с применением указателей(
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
03.02.2012, 13:37
Цитата Сообщение от Ломтев Посмотреть сообщение
Мне нужно решить задачу с применением указателей(
- тогда задание выложи - массив и так в функцию передаётся как указатель. Может с массивом надо через указатели работать???Вобще давай задание, а не свой код, по нему судить о том что тебе действительно надо невозможно...
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
03.02.2012, 13:42  [ТС]
Программу нужно написать в двух вариантах:
один с указателями, другой – со ссылками.

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

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

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

Добавлено через 14 минут
надеюсь на помощь, заранее спасибо!
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
06.02.2012, 14:48
Цитата Сообщение от Ломтев Посмотреть сообщение
Программу нужно написать в двух вариантах:
один с указателями, другой – со ссылками.
Ломтев, всё таки я так и не понял, что по ссылке и по указателю
Если kolnulc,kolelemc - то по ссылке
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
void raschet(float[][J],int &,int &);
как раз вариант который я выложил во 2-м посте
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
06.02.2012, 14:58  [ТС]
это лаба по программированию - нужно в одном варианте программы использовать ссылки а в другом указатели, это две разные программы. то есть в одном варианте использовать void raschet(float[I][J],int &,int &); а во втором void raschet(float[I][J],int*,int*);
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
06.02.2012, 15:41
Цитата Сообщение от Ломтев Посмотреть сообщение
а во втором void raschet(float[I][J],int*,int*);
- хорошо займусь по свободе!
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
07.02.2012, 10:49
Цитата Сообщение от Ломтев Посмотреть сообщение
а в другом указатели, это две разные программы. то есть в одном варианте использовать 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";
}
Миниатюры
Задача на массивы. Необходимо исправить код  
1
0 / 0 / 0
Регистрация: 17.06.2011
Сообщений: 28
07.02.2012, 10:58  [ТС]
Огромное спасибо!!! Все дело было в скобках))) (*kolnul)++ и (*kolelem)++; как я понимаю сработал приоритет операций?
0
07.02.2012, 12:46

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2012, 12:46
Помогаю со студенческими работами здесь

Необходимо исправить/доработать код
Привет форумчане ! Имеется данная задача : Нужно ввести строку в консоль и проверить совпадает ли она со строкой в файле. Сам я плохо...

Необходимо дописать код. Массивы
Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные элементы массива A, в массив C - все...

Необходимо исправить код в крочайшие сроки
from tkinter import * from math import sqrt #sqrt(x) from math import sin #sin(x) def qwerty1(): alementa1 =...

Задача на массивы: Необходимо обработать имеющиеся данные
Составить и решить задачу, с подробным объяснением шагов(функции и процедуры не использовать): Имеется список оценок, выставленных вашими...

Задача на массивы, исправить ошибку нужно
массивы color1 и color2 состоят каждый из 7 элементов. Их значения - семь цветов(рандомные). Значения элементов массива формируются...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru