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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Ёвочка
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 14
#1

Задачи на массивы в С++ - C++

19.01.2012, 23:22. Просмотров 1433. Ответов 11
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста с решением 2 задач:

1. Даны целые числа a1, ..., a30. Все члены последовательности с четными номерами, предшествующие первому по порядку члену со значением max(a1,...,a30), домножить на max(a1,...,a30).

2. Задана матрица Z(5,6). Выбрать строку с наибольшей суммой элементов и вывести элементы этой строки в массив, затем каждый отрицательный элемент умножить на номер столбца. Вывести исходную и преобразованную матрицы, полученный массив.

В С++ новичок, еще никак не пойму как и что делать с массивами. Помогите пожалуйста.
Во второй задаче удалось только задать матрицу и посчитать сумму.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 23:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачи на массивы в С++ (C++):

Задачи на массивы - C++
Помогите написать программы на С++ пожалуйста.

задачи на C++, на массивы - C++
дана такая задача: дан линейный массив А, состояий из N элементов. Составить прорграмму удаления в массиве всех элементов, значения...

Задачи на массивы С++ - C++
1)решить двумя способоми, сначала используя одномерный массив а потом двумерный.( и только с помощьюь массивов,никак по другому) ...

Массивы(задачи) - C++
Начал изучать язык Си.Не могу решить задачи.Прошу помощи в решении: 1.Дано 2(два) массива из цифр: а)найти сумму б)разность ...

Массивы - задачи - C++
http://www.ii4.ru/images/7078611.JPG http://www.ii4.ru/images/1839532.JPG задачи на C++ срочно нужно знакомому...

Задачи на массивы - C++
Здравствуйте, многоуважаемые пользователи! Прошу Вас помощи в начинающих заданиях. Не знаю сюда ли пишу. 1. Дан N-элементный...

11
soundtrack
42 / 42 / 4
Регистрация: 15.12.2011
Сообщений: 131
20.01.2012, 00:58 #2
Вот решение для задачи №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
#include <iostream>
using namespace std;
 
void main()
{
    int a[30], count=0, max;
    cout << "a[1]=";
    cin>>a[0]; max=a[0];
    for(int i=1; i<30; i++)
    {
        cout << "a["<<i+1<<"]=";
        cin>>a[i];
        if(max<a[i]) {max=a[i]; count=i;}
    }
    cout<<endl<<"new massive:"<<endl;
    for(int i=1; i<30; i++)
    {
        if(i%2==0 && i<count)
            {a[i]*=max;}
        cout<<"a["<<i+1<<"]="<<a[i]<<endl;
    }
    system("pause");
}
1
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,060
20.01.2012, 01:06 #3
Цитата Сообщение от soundtrack Посмотреть сообщение
cin>>a[0];
а чей то первый элемент так не взлюбили???
Цитата Сообщение от soundtrack Посмотреть сообщение
for(int i=1; i<30; i++)
{
if(i%2==0 && i<count)
опять без первого
и не проще так сделать
C++
1
2
3
for(int i=0; i<count; i++)
 {
 if(i%2==0 )
или так
C++
1
2
for(int i=0; i<count; i+=2)
 {
а отдельным циклом вывести???
2
iCast
6 / 6 / 0
Регистрация: 15.01.2012
Сообщений: 56
20.01.2012, 01:09 #4
soundtrack, 2 раза int i определил? это прикольно...
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,060
20.01.2012, 01:13 #5
Цитата Сообщение от iCast Посмотреть сообщение
2 раза int i определил? это прикольно...
это нормально
переменная будет видна только в цикле
за пределами не видна
соответственно в новом цикле её надо заново объявлять
0
iCast
6 / 6 / 0
Регистрация: 15.01.2012
Сообщений: 56
20.01.2012, 01:18 #6
а у мя компилятор ругается на него
0
soundtrack
42 / 42 / 4
Регистрация: 15.12.2011
Сообщений: 131
20.01.2012, 01:18 #7
Цитата Сообщение от ValeryS Посмотреть сообщение
а чей то первый элемент так не взлюбили???
Ну не то чтобы не влюбил, просто подумал лучше один раз определить первый вручную, чем потом будет 30 раз проверяться номер.

Цитата Сообщение от ValeryS Посмотреть сообщение
опять без первого
А вот в этом случае просто не заметил, скопировал первый цикл и не изменил
0
ValeryS
Модератор
6676 / 5085 / 475
Регистрация: 14.02.2011
Сообщений: 17,060
20.01.2012, 01:32 #8
Цитата Сообщение от iCast Посмотреть сообщение
а у мя компилятор ругается на него
у тебя визуал 6 ????
если да то он не поддерживает новый стандарт
объяви отдельно а в циклах не объявляй
0
Ёвочка
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 14
20.01.2012, 09:56  [ТС] #9
Спасибо большое, ребят, очень выручили. Теперь буду разбираться надеюсь, все пойму
0
iCast
6 / 6 / 0
Регистрация: 15.01.2012
Сообщений: 56
20.01.2012, 13:26 #10
ValeryS, да, я на 6 программу проверял
0
Ёвочка
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 14
20.01.2012, 14:11  [ТС] #11
А как во второй задаче вывести элементы строки с максимальной суммой и каждый отрицательный элемент умножить на номер столбца?
На данном этапе готов вот такой код:
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
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    const int m=5;
    const int n=6;
    int a[m][n], i, j, s, max;
    printf ("Input the matrix 5x6 \n");
    for (i=0;i<m;i++)
    for (j=0;j<n;j++)
    scanf("%d",&a[i][j]);
    for(i=0;i<m;i++)
      {
         s=0;
         for (j=0;j<n;j++)
         s+=a[i][j];
         if (i==0) 
            max=s;
         else 
              if (max<s) 
                 max=s;
      }
printf("Max sum str = %d",max);
system ("pause");
}
0
R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
20.01.2012, 18:38 #12
Цитата Сообщение от Ёвочка Посмотреть сообщение
2. Задана матрица Z(5,6). Выбрать строку с наибольшей суммой элементов и вывести элементы этой строки в массив, затем каждый отрицательный элемент умножить на номер столбца. Вывести исходную и преобразованную матрицы, полученный массив.
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int sumOfRow(const int [][6], int, int);
 
int main()
{
    int z[5][6];
    int mass[6];
    int maxRow;
    int maxIndex = 0;
 
    srand(time(NULL));
 
    for(int i = 0; i < 5; i++)
    {
        for(int j = 0; j < 6; j++)
        {
            z[i][j] = rand() % 20;
 
            if(j % 2 == 0)
                z[i][j] *= -1;
 
            std::cout << std::setw(5) << z[i][j];
        }
 
        std::cout << std::endl;
    }
 
    maxRow = sumOfRow(z,0,5);
 
    for(int i = 1; i < 5; i++)
        if(sumOfRow(z,i,5) > maxRow)
        {
            maxRow = sumOfRow(z,i,5);
            maxIndex = i;
        }
 
    std::cout << "\nстрока с максимальной суммой эл-ов: " << std::endl;
 
    for(int j = 0; j < 6; j++)
    {
        mass[j] = z[maxIndex][j];
        std::cout << std::setw(5) << mass[j];
    }
 
    std::cout << "\n\nпреобразованная матрица: " << std::endl;
 
    for(int i = 0; i < 5; i++)
    {
        for(int j = 0; j < 6; j++)
        {
            z[i][j] = z[i][j] < 0 ?
            z[i][j] * i : z[i][j];
 
            std::cout << std::setw(5) << z[i][j];
        }
 
        std::cout << std::endl;
    }
 
    return 0;
}
 
 
int sumOfRow(const int z[][6], int row, int steps)
{
    if(!steps)
        return z[row][steps];
    else
        return z[row][steps] + sumOfRow(z,row,steps-1);
}
1
20.01.2012, 18:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 18:38
Привет! Вот еще темы с ответами:

Задачи на массивы - C++
1.дан массив А(11).все элементы этого массива из интервала (с,d) обнулите,найдите сумму остальных. 2.Дан одномерный массив А. найти...

с++ задачи на массивы и мартицы - C++
помогите написать код програми: В одномірному масиві, що складається з n дійсних елементів, вирахувати: 1) кількість елементів...

Задачи на одномерные массивы - C++
Помогите написать проги пожалуйста. 1. Задан массив A(n), (n&gt;=2). Посчитать: https://cloud.mail.ru/public/Eyr2/yZ7bioVmT 2.Задан...

Задачи массивы( объяснение) - C++
Здравствуйте,не могли бы помочь в написании кода и обьяснить некоторые подробности есть несколько типов задач, по массивам которые...


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

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

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