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

Циклы и двумерные массивы - C++

Восстановить пароль Регистрация
 
Marina1700
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
23.09.2011, 22:01     Циклы и двумерные массивы #1
1. Цикл For...
Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k.
2. двумерные массивы
Дана целочисленная квадратная матрица. Найти в каждой строке наиболь¬ший элемент и поменять его местами с элементом главной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2011, 22:01     Циклы и двумерные массивы
Посмотрите здесь:

Двумерные массивы C++
C++ Двумерные массивы в C++
C++ Двумерные массивы
Двумерные массивы C++
Двумерные массивы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
23.09.2011, 22:48     Циклы и двумерные массивы #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
#include <iostream>
#include <cmath>
 
int sumDigits (int val) {
    int sum = 0;
    while (val) {
        sum += val % 10;
        val /= 10;
    }
 
    return sum;
}
 
int main () {
    int n, k;
    std::cin >> n >> k;
    int end = std::pow (10, n);
 
    for (int i = 1; i < end; ++i)
        if (sumDigits (i) == k)
            std::cout << i << " ";
 
    return 0;
}
Marina1700
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
23.09.2011, 22:52  [ТС]     Циклы и двумерные массивы #3
А вторую задачку можно)))
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
23.09.2011, 23:00     Циклы и двумерные массивы #4
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
#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
int main () {
    const int size = 5;
    int arr[size][size];
    //
    std::cout << "Start array:\n";
    std::srand (std::time (NULL));
    for (int i = 0; i < size; ++i) {
        std::generate (arr[i], arr[i] + size, [] () -> int {
            return std::rand () % 10;
        });
        std::for_each (arr[i], arr[i] + size, [] (const int val) -> void {
            std::cout << std::setw(3) << val;
        });
        std::cout << std::endl;
    }
    std::cout << std::endl;
    //
    for (int i = 0; i < size; ++i)
        std::swap (*std::max_element (arr[i], arr[i] + size), arr[i][i]);
    //
    for (int i = 0; i < size; ++i) {
        std::for_each (arr[i], arr[i] + size, [] (const int val) -> void {
            std::cout << std::setw(3) << val;
        });
        std::cout << std::endl;
    }
 
    return 0;
}
Marina1700
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
23.09.2011, 23:05  [ТС]     Циклы и двумерные массивы #5
Спасибо конечно огромное. А можно коментариии подписать, хоть не много.. А то я в С++ новичок, можно даже сказать что плохой новичок)), могу и не разобраться сразу в коде(((
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
23.09.2011, 23:11     Циклы и двумерные массивы #6
В таком случае вам стоит почитать книги.
Slimmy
 Аватар для Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
23.09.2011, 23:12     Циклы и двумерные массивы #7
Цитата Сообщение от neske Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
int main () {
    const int size = 5;
    int arr[size][size];
    //
    std::cout << "Start array:\n";
    std::srand (std::time (NULL));
    for (int i = 0; i < size; ++i) {
        std::generate (arr[i], arr[i] + size, [] () -> int {
            return std::rand () % 10;
        });
        std::for_each (arr[i], arr[i] + size, [] (const int val) -> void {
            std::cout << std::setw(3) << val;
        });
        std::cout << std::endl;
    }
    std::cout << std::endl;
    //
    for (int i = 0; i < size; ++i)
        std::swap (*std::max_element (arr[i], arr[i] + size), arr[i][i]);
    //
    for (int i = 0; i < size; ++i) {
        std::for_each (arr[i], arr[i] + size, [] (const int val) -> void {
            std::cout << std::setw(3) << val;
        });
        std::cout << std::endl;
    }
 
    return 0;
}
Вот что значит хороший программист. У меня с динамическим захватом памяти и не знанием "std" это все растянулось на 100 строк. Делаю выводы - учим CPP дальше. Решение понравилось. Вопрос можно? А зачем писать перед каждой константой/функцией std-пространства имен std:: не проще ли использовать using name space? Извиняюсь, если вопрос покажется глупым. Говорю так, как понимаю и вижу сам.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
23.09.2011, 23:16     Циклы и двумерные массивы #8
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
#include<iostream>
#include <stdlib.h>
 
const int arr_size = 5;
 
int main(){
    int array[arr_size][arr_size];
 
    for (int i = 0; i != arr_size; ++i)
        for (int k = 0; k != arr_size; ++k)
            array[i][k] = rand() % 10;
 
    for (int i = 0; i != arr_size; ++i){
        for (int k = 0; k != arr_size; ++k)
            std::cout << array[i][k] << " ";
        std::cout << "\n";
    }
 
    std::cout << "\n\n";
 
    int max_tmp = 0, collums;
 
    for (int i = 0; i != arr_size; ++i){
        int k = 0;
        while(k != arr_size){
            if(array[i][k] > max_tmp){
                max_tmp = array[i][k];
                collums = k;
            }
            ++k;
        }
        array[i][i] += array[i][collums];
        array[i][collums] = array[i][i] - array[i][collums];
        array[i][i] -= array[i][collums];
        max_tmp = 0;
    }
 
    for (int i = 0; i != arr_size; ++i){
        for (int k = 0; k != arr_size; ++k)
            std::cout << array[i][k] << " ";
        std::cout << "\n";
    }
 
    return 0;
}
вывод
$ ./tmp
3 6 7 5 3
5 6 2 9 1
2 7 0 9 3
6 0 6 2 6
1 8 7 9 2


7 6 3 5 3
5 9 2 6 1
2 7 9 0 3
2 0 6 6 6
1 8 7 2 9
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
23.09.2011, 23:21     Циклы и двумерные массивы #9
Slimmy, спасибо)
Вообще чтобы не было конфликтов имен. В таких небольших программах, возможно, это и ни к чему, но привычка уже.

Marina1700,
без stl.
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
int main () {
    const int size = 5;
    int arr[size][size];
    //
    std::cout << "Start array:\n";
    std::srand (std::time (NULL));
    for (int i = 0; i < size; ++i) {
        for (int j = 0; j < size; ++j) {
            arr[i][j] = std::rand () % 10;
            std::cout << std::setw (3) << arr[i][j];
        }
        std::cout << std::endl;
    }
    std::cout << std::endl;
    //
    int max, idx;
    for (int i = 0; i < size; ++i) {
        max = arr[i][0];
        idx = 0;
        for (int j = 1; j < size; j++)
            if (arr[i][j] > max) {
                max = arr[i][j];
                idx = j;
            }
        int temp = arr[i][i];
        arr[i][i] = arr[i][idx];
        arr[i][idx] = temp;
    }
    //
    std::cout << "Finish array:\n";
    for (int i = 0; i < size; ++i) {
        for (int j = 0; j < size; ++j)
            std::cout << std::setw (3) << arr[i][j];
        std::cout << std::endl;
    }
 
    return 0;
}



upd: alkagolik, не видел)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2011, 23:21     Циклы и двумерные массивы
Еще ссылки по теме:

C++ Двумерные массивы
C++ Циклы и двумерные массивы
двумерные массивы C++

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

Или воспользуйтесь поиском по форуму:
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
23.09.2011, 23:21     Циклы и двумерные массивы #10
Цитата Сообщение от Marina1700 Посмотреть сообщение
могу и не разобраться сразу в коде
так вы и так не разбираетесь, а просто просите написать вам программы
Yandex
Объявления
23.09.2011, 23:21     Циклы и двумерные массивы
Ответ Создать тему
Опции темы

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