0 / 0 / 0
Регистрация: 23.01.2022
Сообщений: 36
1

все положительные элементы увеличить в 5 раз

01.02.2022, 22:53. Показов 568. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main()
{
    
    const int m=3,n=3;
    int avg,i,j,a[n][m],s, k;
    for (i=0;i<n;i++)
    for (j=0;j<m;j++)
    a[i][j]=rand()%20-2;
   for (i=0;i<n;i++){
   for (j=0;j<m;j++)
   cout<<a[i][j]<<"\t";
   cout<<"\n";
   }
    for(i=0;i<3;i++)
    for(j=0;j<3;++j)
    if (a[i][j]>0) k=a[i][j]*5;
    cout<<"k="<<k<<"\n";
return 0;
}
Просьба найти ошибку. Нужно что бы они все вывелись потом.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2022, 22:53
Ответы с готовыми решениями:

Положительные элементы вектора увеличить в 10 раз
Дан вещественный вектор. Все его элементы, больше 0 - умножить на 10, остальные оставить без...

В однородном массиве все отрицательные элементы увеличить на 2, а все положительные заменить на 1
помогите пожалуйста написать программу. В массиве все отрицательные элементы увеличить на 2, а все...

Все положительные элементы массива увеличить на 2, а все отрицательные - уменьшить на 2
Составить программы для решении задач, используя среду программирования Visio studio. Дан массив...

Увеличить все элементы массива в n раз
увеличить все элементы массива в n раз

Увеличить все положительные элементы массива в 2 раза при наличии двух нулей в начеле
Задан одномерный массив А(10) . Если перед максимальным элементом расположено два нуля, то...

1
64 / 54 / 10
Регистрация: 30.06.2020
Сообщений: 594
01.02.2022, 23:20 2
Лучший ответ Сообщение было отмечено Sers как решение

Решение

Цитата Сообщение от Sers Посмотреть сообщение
Просьба найти ошибку
Ошибку по клинкоду вам дам - даже отступов нет человеческих, с первого раза не прочитать совершенно

Добавлено через 2 минуты
Цитата Сообщение от Laborant666 Посмотреть сообщение
даже отступов нет человеческих
Хотя возможно скопировали так

Добавлено через 46 секунд
Цитата Сообщение от Sers Посмотреть сообщение
int avg,i,j,a[n][m],s, k;
Две неиспользуемые переменные, avg и s. Копипастили?

Добавлено через 14 минут
Мой код и ваш код. В вашем коде:
- Неиспользуемые переменные avg и s
- Переменные для циклов создаются внутри цикла, их не требуется создавать отдельно, создание отдельно используется очень редко и чаще в таких переменных случаются ошибки, где-то не обнулили или обнулили когда не нужно
- Соблюдайте стиль - в одном месте у вас циклы без фигурных скобок - в другом с фигурными
- Давайте переменным имена по их смыслу (lines в массиве понятно за что отвечает). Единственное исключение в циклах - принято начинать с i и далее по алфавиту во всех вложенным циклах
- Ваш код заполнял массив верно, выводил так же, умножение на 5 положительного элемента в строке 18 тоже сделано верно, но не было записи этого результат обратно в массив (если я правильно понял)
-- Тут сразу добавлю - лучше всего делать копию массива и с ним работать, оставляя исходным массив нетронутым ( что бы не переписать всю базу данных на чепуху, например


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
#include <iostream>
using namespace std;
int main()
{
 
    const int lines = 3, columns = 3; // имена переменных по смыслу
    int data[lines][columns]; //Сменил имя по смыслу, но доработать бы. Данные чего??
 
    for (int i = 0; i < lines; i++)  // инициализация счетчика в цикле, заранее не стоит
    {
        for (int j = 0; j < columns; j++)  // заполнение ваше - верно
        {
            data[i][j] = rand() % 20 - 2;
        }
    }
 
    for (int i = 0; i < lines; i++) 
    {
        for (int j = 0; j < columns; j++)  // вывод верен
        {
            cout << data[i][j] << "\t";
        }
        cout << "\n";
    }
 
    for (int i = 0; i < lines; i++)
    {
        for (int j = 0; j < columns; ++j) // вот тут была ошибка
        {
            if (data[i][j] > 0)
            {
                data[i][j] *= 5;
            }
        }
    }
    
    for (int i = 0; i < lines; i++)
    {
        for (int j = 0; j < columns; j++)
        {
            cout << data[i][j] << "\t";
        }
        cout << "\n";
    }
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main()
{
    
    const int m=3,n=3;
    int avg,i,j,a[n][m],s, k;
    for (i=0;i<n;i++)
    for (j=0;j<m;j++)
    a[i][j]=rand()%20-2;
   for (i=0;i<n;i++){
   for (j=0;j<m;j++)
   cout<<a[i][j]<<"\t";
   cout<<"\n";
   }
    for(i=0;i<3;i++)
    for(j=0;j<3;++j)
    if (a[i][j]>0) k=a[i][j]*5;
    cout<<"k="<<k<<"\n";
return 0;
}
Добавлено через 7 минут
Цитата Сообщение от Laborant666 Посмотреть сообщение
if (a[i][j]>0) k=a[i][j]*5;
    cout<<"k="<<k<<"\n";
Если что здесь можно было обойтись правильным расположением фигурных скобок

Это выведет значение 1 раз
C++
1
2
if (a[i][j]>0) k=a[i][j]*5;
    cout<<"k="<<k<<"\n";
Потому что это равно
C++
1
2
3
4
5
if (a[i][j]>0) 
{
   k=a[i][j]*5;
}
cout<<"k="<<k<<"\n";
А это на каждой итерации, и будет вам верный вывод, аналогичный моему, в моём варианте сам массив редактируется, что исходя из задания (увеличить положительные элементы в 5 раз) и требуется
C++
1
2
3
4
5
if (a[i][j]>0)
{ 
   k=a[i][j]*5;
   cout<<"k="<<k<<"\n";
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2022, 23:20
Помогаю со студенческими работами здесь

Все положительные элементы массива, расположенные правее первого нулевого элемента, увеличить в два раза
Все положительные элементы массива а1, а2 , ..., а20, расположенные правее первого нулевого...

Необходимо, пройдя по массиву один раз, все его положительные элементы поставить в начало а отрицательные в конец
Помогите решить такую задачу пжл: дан одномерный массив &quot;а&quot; (состоящий из вещественных чисел)....

Увеличить все четные элементы матрицы на 16, а нечетные элементы увеличить втрое
Данная матрица целых чисел размером 4x4. Увеличить все четные элементы на 16, а нечетные элементы...

Все отрицательные элементы массива увеличить в пять раз, все положительные элементы уменьшить в два раза
1 Ввести одномерный массив поэлементно с помощью клавиатуры или получить его, используя генератор...

В одномерном массиве все отрицательные элементы увеличить в пять раз, а все положительные элементы уменьшить в два раза
В одномерном массиве все отрицательные элементы увеличить в пять раз, а все положительные элементы...

В одномерном массиве все положительные элементы увеличить в три раза, а все отрицательные элементы уменьшить в восемь раз
1. Ввести одномерный массив поэлементно с помощью клавиатуры или получить его, используя генератор...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru