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

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

23.09.2011, 22:01. Показов 622. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1. Цикл For...
Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k.
2. двумерные массивы
Дана целочисленная квадратная матрица. Найти в каждой строке наиболь¬ший элемент и поменять его местами с элементом главной диагонали.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2011, 22:01
Ответы с готовыми решениями:

Циклы и двумерные массивы
Решенная задача: Вы продаете книгу "Язык С++ для чайников". Напишите программу, которая позволит...

Двумерные массивы
Ребята, помогите очень прошу! :с По массиву А(n,m) получить массив В(n) (типа boolean), присвоив...

Двумерные массивы в С++
Написать программу, которая дает пользователю ввести 5 фамилий студентов, а затем находит среди них...

Двумерные массивы.
Помогите решить задачку!!!!!! Дана действительная квадратная матрица порядка 2N. Подучить новую...

9
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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;
}
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
23.09.2011, 22:52  [ТС] 3
А вторую задачку можно)))
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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;
}
0
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
23.09.2011, 23:05  [ТС] 5
Спасибо конечно огромное. А можно коментариии подписать, хоть не много.. А то я в С++ новичок, можно даже сказать что плохой новичок)), могу и не разобраться сразу в коде(((
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
23.09.2011, 23:11 6
В таком случае вам стоит почитать книги.
0
65 / 18 / 3
Регистрация: 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? Извиняюсь, если вопрос покажется глупым. Говорю так, как понимаю и вижу сам.
0
Заблокирован
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
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
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, не видел)
0
Заблокирован
23.09.2011, 23:21 10
Цитата Сообщение от Marina1700 Посмотреть сообщение
могу и не разобраться сразу в коде
так вы и так не разбираетесь, а просто просите написать вам программы
0
23.09.2011, 23:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2011, 23:21
Помогаю со студенческими работами здесь

Двумерные массивы.
для заданной матрицы размером 8x8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом....

с++ двумерные массивы
с++ двумерные массивы, можете помочь написать код пожалуйста №1 Заполнить матрицу А(9,9), от...

двумерные массивы
Составить программу обмена местами максимального и минимального элементов главной диогонали матрицы...

Двумерные массивы
Помогите люди добрые:) Дана целочисленная прямоугольная матрица, определить: 1) Кол-во...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru