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

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

Войти
Регистрация
Восстановить пароль
 
Marina1700
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
#1

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

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

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

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

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

двумерные массивы - C++
Составить программу обмена местами максимального и минимального элементов главной диогонали матрицы 4x4. зарание спасибо!

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

Двумерные массивы - C++
Никогда особо раньше не занимался программирование,больше как то математикой.И вот на первом курсе стали изучать язык Си на лекциях.На...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
neske
1495 / 862 / 82
Регистрация: 26.03.2010
Сообщений: 2,951
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
Marina1700
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
23.09.2011, 22:52  [ТС] #3
А вторую задачку можно)))
0
neske
1495 / 862 / 82
Регистрация: 26.03.2010
Сообщений: 2,951
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
Marina1700
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 5
23.09.2011, 23:05  [ТС] #5
Спасибо конечно огромное. А можно коментариии подписать, хоть не много.. А то я в С++ новичок, можно даже сказать что плохой новичок)), могу и не разобраться сразу в коде(((
0
neske
1495 / 862 / 82
Регистрация: 26.03.2010
Сообщений: 2,951
23.09.2011, 23:11 #6
В таком случае вам стоит почитать книги.
0
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? Извиняюсь, если вопрос покажется глупым. Говорю так, как понимаю и вижу сам.
0
alkagolik
Заблокирован
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
neske
1495 / 862 / 82
Регистрация: 26.03.2010
Сообщений: 2,951
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
alkagolik
Заблокирован
23.09.2011, 23:21 #10
Цитата Сообщение от Marina1700 Посмотреть сообщение
могу и не разобраться сразу в коде
так вы и так не разбираетесь, а просто просите написать вам программы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2011, 23:21
Привет! Вот еще темы с ответами:

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

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

Двумерные массивы. - C++
для заданной матрицы размером 8x8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Как это вообще? Второй день голову...

Двумерные массивы - C++
Привет всем! если есть у кого время, посмотрите что можно сделать, нужна ваша помощь! Сформировать одномерный массив B из максимальных...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.09.2011, 23:21
Ответ Создать тему
Опции темы

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