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

Программа считает числа как новые

23.12.2020, 23:58. Показов 1523. Ответов 7

Студворк — интернет-сервис помощи студентам
В конце программа должна выводить удельный вес,но она выводит нули так как воспринимает v1 и v2 как новые числа
Не могу понять как это исправить
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
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
int main()
{
  const int n = 20;
  const int m = 20;
  double v1=0,v2=0,*pa=0,a[n][m];
  int i = 0, n1, m1, j = 0, nep = 0, par = 0,m2,n2;
  pa = &a[0][0];
  cout << "Enter riadok" << endl;
  cin >> n1;
  cout << "Enter stovb" << endl;
  cin >> m1;
  n2 = n1;
  m2 = m1;
  cout << "Input elements" << endl;
  for (i = 0; i < n1; i++)
  {
    for (j = 0; j < m1; j++)
    {
      cin >> (*(pa + i*m1 + j));
    }
  }
 
  for (i = 0; i < n1; i++)
  {
    for (j = 0; j < m1; j++)
    {
      if((int)((*(pa + i * m1 + j))) %2 == 0)
      {
        par++;
        *(pa + i * m1 + j) = pow(*(pa + i*m1 + j),2);
      }
      else 
      {
        nep++;
        (*(pa + i*m1 + j) =(*(pa + i*m1 + j) / 2));
      }
    }
  }
  for (i = 0; i < n1; i++)
  {
    for (j = 0; j < m1; j++)
    {
      cout << *(pa + i*m1 + j)<<endl;
    }
  }
  v1 = ((nep / (n2 * m2)));
    v2= ((par/ (n2 * m2)));
  cout << "Weight of par elements=" << v2 << "%" << endl;
  cout << "Weight of unpar elements=" << v1 << "%" << endl;
}
Миниатюры
Программа считает числа как новые  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2020, 23:58
Ответы с готовыми решениями:

Программа не считает дробные числа и мантиссы
Суть проблемы есть прога, взодной и выходные файлы. Все работает, но но если засунуть во входной файл дробные части или мантиссы, или...

Программа генерирует постоянно одинаковые числа и не считает кол-во нулевых элементов
// Вводим необходимые библиотеки #include &lt;iostream&gt; #include &lt;clocale&gt; using namespace std; int main() { // Объявляем...

Программа, которая в компоненте StringGrid считает введённые числа и выводит среднее число
Нужна программа которая в компоненте StringGrid считает введённые числа и выводит среднее число, есть у кого похожая?

7
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 00:49
Лучший ответ Сообщение было отмечено Zurichkul как решение

Решение

нули выводит потому что целочисленное деление. переменные лучше назвать even (количество чётных) и odd (количество нечётных)

C++
1
2
v1=100.*odd/(n2*m2);
v2=100.-v1;
не по вопросу:
при вводе размера массива с клавиатуры лучше применять динамический массив

зачем Вам n2 и m2 ? переменные n1 и m1 не изменяются

Добавлено через 9 минут
результат скорее всего должен выводиться не в столбик, а в виде массива - напишите условие задачи
1
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 17
24.12.2020, 00:59  [ТС]
Четные по значению элементы матpици A = (a [i] [j]), i = 1,2, ..., n; j = 1,2, ..., m, поднести к квадpату, а нечетные уменьшить вдвое. Вычислить удельный вес четных и нечетных элементов.
Написать программу используя индексы и указатели

Добавлено через 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
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
 
int main()
{
  const int n = 20;
  const int m = 20;
  double v1,v2,*pa=0,a[n][m],t1;
  int i = 0, n1, m1, j = 0, nep = 0, par = 0,m2,n2;
  pa = &a[0][0];
  cout << "Enter riadok" << endl;
  cin >> n1;
  cout << "Enter stovb" << endl;
  cin >> m1;
  n2 = n1;
  m2 = m1;
  cout << "Input elements" << endl;
  for (i = 0; i < n1; i++)
  {
    for (j = 0; j < m1; j++)
    {
      cin >> (*(pa + i*m1 + j));
    }
  }
 
  for (i = 0; i < n1; i++)
  {
    for (j = 0; j < m1; j++)
    {
      if(((int)((*(pa + i * m1 + j))) %2 == 0))
      {
        par++;
        *(pa + i * m1 + j) = pow(*(pa + i*m1 + j),2);
      }
      else 
      {
        nep++;
        (*(pa + i*m1 + j) =(*(pa + i*m1 + j) / 2));
      }
    }
  }
  for (i = 0; i < n1; i++)
  {
    cout << endl;
    for (j = 0; j < m1; j++)
    {
      cout << *(pa + i*m1 + j)<<" ";
    }
  }
  cout << endl;
  t1 = n2 * m2;
  v1 = (nep /t1)*100;
    v2 = (par/ t1)*100;
  cout << "Weight of par elements=" << v2<<"%"<<endl;
  cout << "Weight of unpar elements=" << v1<<"%"<< endl;
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 01:23
Цитата Сообщение от Zurichkul Посмотреть сообщение
Уже решил проблему
не совсем понятно какие проблемы Вы решаете, если 2 дня назад Вы уже получили ответ - сообщение №7 темы:
Почему в результате много раз повторяется четные,нечетные
0
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 17
24.12.2020, 01:28  [ТС]
На этот раз её нужно было написать с использованием индексов и указателей
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
24.12.2020, 01:33
Zurichkul, решение по ссылке - это решение с индексами, что получить решение с указателями в первом приближении достаточно заменить все a[i][j] на *(*(a+i)+j)
1
0 / 0 / 0
Регистрация: 20.12.2020
Сообщений: 17
24.12.2020, 01:53  [ТС]
:Не по теме:
Можете помочь ещё с этой задачей?
В одномерном массиве, состоящем из n целых элементов, вычислить:
1) минимальный за абсолютным элементом массива;
2) сумму абсолютных элементов массива, расположенных после первого элемента, равного нулю;
3) преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине — элементы, стоявшие в нечетных позициях.
Также с использованием индексов и указателей

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
#include <iostream>
#include <conio.h>
#include <math.h >
 
using namespace std;
 
int main(int argc,char* argv[])
{
    setlocale(LC_ALL, "rus");
    int i,n,ibeg=0,imin,min=0,sum=0;
    
      cout<<"\n Введите n=  "; cin>>n;
      cout<<"\n Введите элементы массива:"<<endl<<endl;
      int*p=new int[n];
      for(i=0;i<n;i++)cin>>p[i];
        min=p[0];
        for(i=0;i<n;i++)
    if(fabs(p[i])<fabs(min))
    {
        min=p[i];
        imin=i;
    }
      cout<<"\n Минимальный элемент: "<<min<<endl;
      cout<<"\n Позиция минимального элемента:"<<imin+1<<endl;
    for(i=0;i<n;i++)
    if(p[i]==0)
    
    {
    
    ibeg=i;
    break;
    
    }
        for(int i=0;i<n;i++) 
        {
         cout << "\nНечетные: ";
     }
         for(int i=1;i<n;i+=2) 
         {
            cout << p[i] << " ";
    }
        cout << "\nЧетные: ";
        
         for(int i=0;i<n;i+=2) 
         {
            cout << p[i] << " ";
        }
 for(i=ibeg+1;i<n;i++)
 sum += abs(p[i]);
      cout<<"\n Сумма элементов расположенных после 1-го элемента равного нулю: "<<sum,abs;
      cout<<"\n Преобразованный массив:"<<endl<<endl;
    for(i=0;i<n;i++)
    if(i%2==false)
    {
        cout<<p[i]<<' ';
    }
    for(i=0;i<n;i++)
    if(i%2)
    {
        cout<<p[i]<<' ';
    
    }
    getch();
    return 0;
}
0
24.12.2020, 02:02

Не по теме:

Zurichkul, не нарушайте правила: одна тема - одна задача. для новой задачи создайте новую тему.

Цитата Сообщение от Zurichkul Посмотреть сообщение
Можете помочь ещё с этой задачей?
не вижу в этом смысла, так как Вы не воспринимаете и не применяете полученную информацию

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.12.2020, 02:02
Помогаю со студенческими работами здесь

При сложении цифр любого трехзначного числа программа считает сумму четной
Почему то при сложении цифр любого трехзначного числа программа считает сумму четной. Условие звучит так: &quot;Сумма цифр данного...

Пояснить, как программа считает результат
как программа считает результат? var n, m, i, d, s : integer; input, output: text; begin Assign(input,'input.txt'); ...

Возведение в степень (Не могу понять, как считает программа)
Вот обычная программа для подсчета степени. Помогите понять, как она считает. #include &lt;iostream&gt; #include &lt;cmath&gt; ...

Как Python считает числа в цикле?
Допустим пишу я что-то по типу: import math for i in range (2,10); a(i+/1)/(i+2)+(math.factorial(i)/i) print(a) Вопрос...

Программа считает заглавную и прописную букву как два разных символа
Доброго времени суток! Возник вопрос, как сделать, чтобы программа считала заглавную и прописную букву как один символ, а не два разных? И...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru