С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/23: Рейтинг темы: голосов - 23, средняя оценка - 4.70
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 48

Основы работ с циклами и функциями

09.09.2011, 11:17. Показов 4661. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана целочислительная прямоугольная матрица. Определить:
1) количество строк, которые не имеют ни одного нулевого элемента.

2) Найти максимальное из чисел встречающихся в матрице более одного раза

3) Обойти по спирали, начиная с центра, все элементы квадратной матрицы МхN. Вывести на печать в порядке обхода.

Кому не трудно и кто что может... Если можно опишите почему так и так.. хочу освоить С++.. Спасиб..

Добавлено через 16 минут
3) Обойти по спирали, начиная с центра, все элементы квадратной матрицы МхN. Вывести на печать в порядке обхода.
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
#include <iostream.h>
#include <iomanip.h>
 
int main(int argc, char* argv[])
{
   const int SIZE = 15;
   int arr[SIZE][SIZE] = {0};
   int iIndex, jIndex, n = 0, count = 1;
 
   iIndex = jIndex = SIZE / 2;
   while (n < SIZE)
   {
      for (int i = 0; i < n; i++)
      {
         arr[iIndex++][jIndex] = count++;
      }
      for (int i = 0; i < n; i++)
      {
         arr[iIndex][jIndex++] = count++;
      }
      n++;
      for (int i = 0; i < n; i++)
      {
         arr[iIndex--][jIndex] = count++;
      }
      for (int i = 0; i < n; i++)
      {
         arr[iIndex][jIndex--] = count++;
      }
      n++;
   }
   for (int i = 0; i < SIZE; i++)
   {
      for (int j = 0; j < SIZE; j++)
      {
         cout << setw(4) << arr[i][j];
      }
   cout << endl;
   }
   system("pause");
   return 0;
}
оставлю решение 3 задачки мало-ли у кого как у меня будет задание... Обход по спирали происходит против часовой стрелки..
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2011, 11:17
Ответы с готовыми решениями:

Надо составить прогу с циклами,классами и функциями, срочно!
Люди мне очень срочно нужно написать программу на Java. Задание: Придумать любую задачу и реализовать ее в виде программы на языке...

В чем различие между функциями VBA и функциями Excel?
В чем различие между функциями VBA и функциями Excel. Скажите пожалуйста , в гугле не могу найти)

Р еш и ть з а д а чу 3 циклами
y=sin1+sin1,1+sin1,2+...+sin2

21
 Аватар для SalterOk
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
09.09.2011, 11:18
Если освоить - то это уже хорошо.
Буду дома напишу подробней.
1
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 48
09.09.2011, 11:38  [ТС]
!!!!!
К 3) задачке...и там не MxN, a NxN..
Как создать двухмерный массив?.. Мне нужно задавать размер матрицы с программы, а не с её кода..
0
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
09.09.2011, 11:49
Цитата Сообщение от Teddy_o_O Посмотреть сообщение
Как создать двухмерный массив?.. Мне нужно задавать размер матрицы с программы, а не с её кода..
C++
1
2
3
int **matrix=new *int[N];
for(int i=0;i<N;i++)
    matrix[i]=new int[M];
1
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 48
09.09.2011, 11:51  [ТС]
=) Опоздал отредактировать.... вообщем можно 3 задачку уже оставить как есть... Препод согласился...

Добавлено через 43 секунды
Mimicria Спасиб... а это я сохраню для себя как пример... или может добавлю в код что бы лишних вопросов не было!))
0
 Аватар для SalterOk
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
09.09.2011, 17:53
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
#include <stdio.h>
#include <locale>
#include <conio.h>
 
int main() {
    int N,M,counter = 0;
    bool flag = false;
    setlocale(LC_ALL,"Russian");
    printf("Введите размеры матрици\n");
    scanf("%d%d",&N,&M);
    int *mass = new int[N,M];
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {
            mass[j,i] = rand() % 10;   //запелняем матрицу
            printf("%d ",mass[j,i]);     //и сразу выводим ее элементы
            if (!mass[j,i]) flag = true; //если mass[j,i] равен нулю - устанавливаем flag = true
        }
        if (!flag) counter++;    //если flag == false (тоесть в строке нет нуля)
                                               //то увеличиваем счетчик
        flag = false;               //сбрасываем значение для новой строки
        printf("\n");
    }
 
    printf("Количество строк, которые не имеют ни одного нулевого элемента %d",counter);
    getch();
    return 0;
}
Добавлено через 3 минуты
будет время еще второй сделаю - а так:
обычно проходят по масиву и подсчитывают сколько раз встречается каждый уникальный элемент и сохраняют элемент и количество куда-то (еще один массив)
0
09.09.2011, 20:41

Не по теме:

Основы работ с цыклами и функцыями
кажется пора при регистрации на форуме сделать экзамен по русскому языку

0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.09.2011, 21:38
Цитата Сообщение от SalterOk Посмотреть сообщение
int *mass = new int[N,M];
Цитата Сообщение от SalterOk Посмотреть сообщение
printf("%d ",mass[j,i]);
Цитата Сообщение от SalterOk Посмотреть сообщение
if (!mass[j,i])
Вы это серьезно ?
0
 Аватар для SalterOk
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
09.09.2011, 22:17
Цитата Сообщение от asics Посмотреть сообщение
Вы это серьезно ?
с этим delphi(шоб его - учить заставляют) окончательно спутал синтаксис - хоть компилятор пропустил и все какбы правильно работает
кто-то может объяснить если так работает
C++
1
int *mass = new int[N,M];
то почему везде как пример дают??
C++
1
2
3
4
int **n = new int* [N];
for (int i = o; i<N; i++) {
   n[i] = new int[M];
}
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.09.2011, 22:25
Цитата Сообщение от SalterOk Посмотреть сообщение
кто-то может объяснить если так работает
C++
1
int *mass = new int[N,M]
;
Сдесь срабатывает оператор кома, т. е. мы просто выделяем память под одномерный масив, размером M.
Еще пример:
C++
1
int f() {return 1, 2, 3;}
вернет 3
0
 Аватар для SalterOk
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
09.09.2011, 22:27
ой-ой все я понял что я делал - точней я даже не знаю о чем думал когда это писал(только не нужно расказывать почему не правильно)
но вот почему компилятор пропустил такой код я не пойму - значит он не считает его ошибочным??

Добавлено через 1 минуту
Цитата Сообщение от asics Посмотреть сообщение
Сдесь срабатывает оператор кома, т. е. мы просто выделяем память под одномерный масив, размером M.
спасибо большое - нужно повнимательней быть.
0
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 48
10.09.2011, 16:09  [ТС]
SalterOk все равно ты очень помог.. а кто то знает ришение 1?
0
 Аватар для SalterOk
117 / 114 / 10
Регистрация: 02.06.2011
Сообщений: 280
10.09.2011, 16:57
менять много не пришлось - кажется на этот раз все правильно
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
#include <stdio.h>
#include <locale>
#include <conio.h>
 
int main() {
    const int N = 6, M = 20;
    int counter = 0;
    bool flag = false;
    setlocale(LC_ALL,"Russian");
    int mass[N][M];
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {
            mass[j][i] = rand() % 10;
            printf("%d ",mass[j][i]);
            if (!mass[j][i]) flag = true;
        }
        if (!flag) counter++;
        flag = false;
        printf("\n");
    }
 
    printf("Количество строк, которые не имеют ни одного нулевого элемента %d",counter);
    getch();
    return 0;
}
1
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 48
12.09.2011, 14:38  [ТС]
C++
1
 mass[j][i] = rand() % 10;
ругается!
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
12.09.2011, 16:09
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
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>
#include <iomanip>
#include <cstddef>
#include <ctime>
#include <cstdlib>
 
int main()
{
    const std::size_t m = 4;
    const std::size_t n = 3;
 
    int matrix[m][n];
    
    // заполняем матрицу
    std::srand(std::time(0));
    for(std::size_t i = 0; i < m; ++i)
        for(std::size_t j = 0; j < n; ++j)
            matrix[i][j] = std::rand() % 10;
 
    // выводим на экран
    std::cout << "matrix:\n";
    for(std::size_t i = 0; i < m; ++i)
    {
        for(std::size_t j = 0; j < n; ++j)
            std::cout << std::setw(4) << matrix[i][j];
        std::cout << '\n';
    }
 
    // считаем
    std::size_t count = m;
    for(std::size_t i = 0; i < m; ++i)
    {
        for(std::size_t j = 0; j < n; ++j)
        {
            if(matrix[i][j] == 0)
            {
                --count;
                break;
            }
        }
    }
 
    std::cout << "result: " << count << '\n';
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 48
15.09.2011, 10:48  [ТС]
Помогите 2 задачка ругается
C++
1
 mass[j][i] = rand() % 10;
вот в этой части...
Как задать правильно рандом? я смотрел, так вроде бы и правильно а не работает!!!
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
15.09.2011, 11:02
C++
1
mass[j][i] = std::rand() % 10;
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.09.2011, 12:21
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
Randomise();
const NUM = 100;
int i =Random(NUM%10);
3
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
15.09.2011, 12:37
Цитата Сообщение от LK Посмотреть сообщение
Randomise();
Randomize();
2
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
15.09.2011, 14:11
Цитата Сообщение от Infinity3000 Посмотреть сообщение
Randomize();
подобного рода ошибки вполне в стиле ЛК

это такая себе защита от дурака с копипейстом
что бы люди немного думали..
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.09.2011, 14:11
Помогаю со студенческими работами здесь

Работа с циклами
Помогите разобраться.Есть 2 listbox с заполненными строками.Необходимо сравнить строки обоих listbox с входящей строкой от сервера и если...

Задача с циклами
Объясните пожалуйста на словах как решить. Задача 1. Напишите программу, которая по заданному натуральному n печатает рисунок (см....

Работа с циклами
Здравствуйте, какой день уже сижу над задачей, не могу понять где ошибка в коде... Мне надо чтоб в цикле уменьшалось количество...

Задача с циклами
Здравствуйте уважаемые обитатели форума!Так как я ещё новичёк в изучении C#,то прошу у вас помощи с циклами.В чём суть проблемы:после...

Рисование циклами
Нужна программа которая рисует картинку, желательно что-бы все было не отдельными командами, а циклом, и еще нужно что-бы можно было менять...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru