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

Заполнить массив

06.10.2012, 23:51. Показов 42441. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Заполнить массив таким вот образом
Заполнить массив

!Только пожалуйста не использую очень сложные функции. Проходим С++ 5 неделю и прошли недавно только массивы..
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2012, 23:51
Ответы с готовыми решениями:

Заполнить массив первыми ста простыми числами, и вывести массив на экран
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию...

Массив: Случайным образом заполнить двумерный массив размерностью 3х4 цифрами от -20 до 10
Помогите пожалуйста с задачей Написать программу, которая случайным образом заполняет двумерный...

Заполнить динамический массив из файла и записать массив обратно в файл
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную...

Заполнить массив строк из файла. Массив заполняется, но выводится не корректно
Здравствуйте! Такая проблема. В файле имена записаны в столбик и разделены точкой с запятой. Массив...

17
Заблокирован
06.10.2012, 23:55 2
Даже не знаю, всегда представлял себе массив в виде прямой линии, за что ж его так загнули?
0
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
06.10.2012, 23:57  [ТС] 3
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
Даже не знаю, всегда представлял себе массив в виде прямой линии, за что ж его так загнули?
училка наша злая нас загнула и массив тоже)
я смогу написать это на паскале но вот перевести в си++ нет((
0
Заблокирован
07.10.2012, 00:04 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main(){
int size=20;
int array[size];
for(int i=0;i!=size;++i){
    array[i]=i+1;
    cout<<array[i]<<", ";
    }
    cout<<endl;
    return 0;
}
Будут по коду вопросы - задавай
0
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
07.10.2012, 00:08  [ТС] 5
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main(){
int size=20;
int array[size];
for(int i=0;i!=size;++i){
    array[i]=i+1;
    cout<<array[i]<<", ";
    }
    cout<<endl;
    return 0;
}
Будут по коду вопросы - задавай
как сделать чтобы границу массива вводить с клавиатуры ну заполнять до какогото числа n с клавы вводимого

Добавлено через 1 минуту
да и ты вывел через запятую -_- а надо по спирали изнутри

Добавлено через 50 секунд
*против часовой стрелки как на рисунке кароче
0
Заблокирован
07.10.2012, 00:14 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main(){
int size;
cin>>size;
int* array = new int[size];
for(int i=0;i!=size;++i){
    array[i]=i+1;
    cout<<array[i]<<", ";
    }
    cout<<endl;
    return 0;
    delete [] array;
}
Так будет через запятую динамический массив, с клавиатуры размер задается...
Цитата Сообщение от ilyasfromkz Посмотреть сообщение
да и ты вывел через запятую -_- а надо по спирали изнутри
*против часовой стрелки как на рисунке кароче
Графически рисовать спираль или как?
0
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
07.10.2012, 00:16  [ТС] 7
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
int main(){
int size;
cin>>size;
int* array = new int[size];
for(int i=0;i!=size;++i){
    array[i]=i+1;
    cout<<array[i]<<", ";
    }
    cout<<endl;
    return 0;
    delete [] array;
}
Так будет через запятую динамический массив, с клавиатуры размер задается...

Графически рисовать спираль или как?
ну да, стал бы я просить если бы мне нужно было встрочку через запятую =___=
0
Заблокирован
07.10.2012, 00:33 8
Цитата Сообщение от ilyasfromkz Посмотреть сообщение
ну да, стал бы я просить если бы мне нужно было встрочку через запятую =___=
Ну, сорри тогда, с графикой не помогу, все мои знания графики сводятся к канве =) Причем с канвой в lazarus е только работал, я бы точками рисовал, придумал бы функцию спирали и фигачил в определенных местах числа нужные, но это долго, думать еще надо.... Может на с++ есть какая нибудь фунция спирали? типа Spirl(x1,y1,.....)
0
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
07.10.2012, 01:31  [ТС] 9
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
Ну, сорри тогда, с графикой не помогу, все мои знания графики сводятся к канве =) Причем с канвой в lazarus е только работал, я бы точками рисовал, придумал бы функцию спирали и фигачил в определенных местах числа нужные, но это долго, думать еще надо.... Может на с++ есть какая нибудь фунция спирали? типа Spirl(x1,y1,.....)
http://25.media.tumblr.com/tum... o1_500.gif
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
07.10.2012, 06:18 10
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
#include<iostream>
using namespace std;
 
int main()
{
    int n, i, j, num=1, a[100][100], l, r, u, d;
    cout<<"N= ";
    cin>>n;
    l=r=j=(n-1)/2;
    u=d=i=n/2;  
    while(num<n*n)
    {
        while(j<=r && num<=n*n)
        {
            a[i][j++]=num++;
        }
        j--;
        if(r<n-1)       
            r++;
        i--;
 
        while(i>=u && num<=n*n)
        {
            a[i--][j]=num++;
        }
        i++;
        if(u>0)
            u--;
        j--;
 
        while(j>=l && num<=n*n)
        {
            a[i][j--]=num++;
        }
        j++;
        if(l>0)
            l--;
        i++;
    
        while(i<=d && num<=n*n)
        {
            a[i++][j]=num++;
        }
        i--;
        if(d<n-1)
            d++;
        j++;
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            cout.width(3);
            cout<<a[i][j];
        }
        cout<<endl;
    }   
     return 0;
}
1
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
07.10.2012, 13:39  [ТС] 11
Цитата Сообщение от valeriikozlov Посмотреть сообщение
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
#include<iostream>
using namespace std;
 
int main()
{
    int n, i, j, num=1, a[100][100], l, r, u, d;
    cout<<"N= ";
    cin>>n;
    l=r=j=(n-1)/2;
    u=d=i=n/2;  
    while(num<n*n)
    {
        while(j<=r && num<=n*n)
        {
            a[i][j++]=num++;
        }
        j--;
        if(r<n-1)       
            r++;
        i--;
 
        while(i>=u && num<=n*n)
        {
            a[i--][j]=num++;
        }
        i++;
        if(u>0)
            u--;
        j--;
 
        while(j>=l && num<=n*n)
        {
            a[i][j--]=num++;
        }
        j++;
        if(l>0)
            l--;
        i++;
    
        while(i<=d && num<=n*n)
        {
            a[i++][j]=num++;
        }
        i--;
        if(d<n-1)
            d++;
        j++;
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            cout.width(3);
            cout<<a[i][j];
        }
        cout<<endl;
    }   
     return 0;
}
когда вводишь число он выводит числа не до него а до его квадрата, ну когда ввожу 10 он выводит числа до 100(((

Добавлено через 8 минут
Цитата Сообщение от valeriikozlov Посмотреть сообщение
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
#include<iostream>
using namespace std;
 
int main()
{
    int n, i, j, num=1, a[100][100], l, r, u, d;
    cout<<"N= ";
    cin>>n;
    l=r=j=(n-1)/2;
    u=d=i=n/2;  
    while(num<n*n)
    {
        while(j<=r && num<=n*n)
        {
            a[i][j++]=num++;
        }
        j--;
        if(r<n-1)       
            r++;
        i--;
 
        while(i>=u && num<=n*n)
        {
            a[i--][j]=num++;
        }
        i++;
        if(u>0)
            u--;
        j--;
 
        while(j>=l && num<=n*n)
        {
            a[i][j--]=num++;
        }
        j++;
        if(l>0)
            l--;
        i++;
    
        while(i<=d && num<=n*n)
        {
            a[i++][j]=num++;
        }
        i--;
        if(d<n-1)
            d++;
        j++;
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            cout.width(3);
            cout<<a[i][j];
        }
        cout<<endl;
    }   
     return 0;
}
можете подробно пожалуйста расписать алгоритм решения хочу не тупо скатать а проникнуться
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
07.10.2012, 18:42 12
Цитата Сообщение от ilyasfromkz Посмотреть сообщение
когда вводишь число он выводит числа не до него а до его квадрата, ну когда ввожу 10 он выводит числа до 100(((
программа работает так: вводите число - размерность квадратного массива. Он заполняется так как на рисунке и выводится на экран.
1
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
07.10.2012, 21:36  [ТС] 13
Можете подробно расписать алгоритм работы программы мне ее потом защищать))) ну а нельзя ли ее изменить чтобы вводили число и она выводила именно до него
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
08.10.2012, 10:12 14
Цитата Сообщение от ilyasfromkz Посмотреть сообщение
ну а нельзя ли ее изменить чтобы вводили число и она выводила именно до него
программа работает правильно только до 100 включительно.
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
#include <iostream>
using namespace std;
 
int main()
{
    int n=2, i, j, num=1, a[100][100], l, r, u, d, N;
    cout<<"N= ";
    cin>>N;
    while(n*n<N)
        n++;
    l=r=j=(n-1)/2;
    u=d=i=n/2;  
    while(num<n*n)
    {
        while(j<=r && num<=n*n)
        {
            a[i][j++]=num++;
        }
        j--;
        if(r<n-1)       
            r++;
        i--;
 
        while(i>=u && num<=n*n)
        {
            a[i--][j]=num++;
        }
        i++;
        if(u>0)
            u--;
        j--;
 
        while(j>=l && num<=n*n)
        {
            a[i][j--]=num++;
        }
        j++;
        if(l>0)
            l--;
        i++;
    
        while(i<=d && num<=n*n)
        {
            a[i++][j]=num++;
        }
        i--;
        if(d<n-1)
            d++;
        j++;
    }
    for(i=0; i<n; i++)
    {
        for(j=0; j<n; j++)
        {
            if(a[i][j]<=N)
            {
                cout.width(3);
                cout<<a[i][j];
            }
            else
                cout<<"   ";
        }
        cout<<endl;
    }   
     return 0;
}
1
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
08.10.2012, 18:15  [ТС] 15
ну если не сложно распишите) распишите пожалуйста пошагово алгоритм)) просто хочу вникнуть если вам не сложно конечно

Добавлено через 2 часа 22 минуты
valeriikozlov, ну если не сложно распишите) распишите пожалуйста пошагово алгоритм)) просто хочу вникнуть если вам не сложно конечно
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
08.10.2012, 18:53 16
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
#include <iostream>
using namespace std;
 
int main()
{
    int n=2, i, j, num=1, a[100][100], l, r, u, d, N;
    cout<<"N= ";
    cin>>N;
    while(n*n<N)//ищем такое n (сторону квадратного массива), что бы все числа в массив вошли 
        n++;
    l=r=j=(n-1)/2;// l- текущая левая граница, r - текущая правая граница, j - текущая координата столбика
    u=d=i=n/2;// u- текущая верхняя граница, d - текущая нижняя граница, i - текущая координата строки
    while(num<n*n)// пока не заполним весь массив
    {
        while(j<=r && num<=n*n)
        {
            a[i][j++]=num++;// заполняем вправо
        }
        j--;// назад на один столбик
        if(r<n-1)       
            r++;// увеличиваем правую границу
        i--;// уменьшаем номер текущей строки
 
        while(i>=u && num<=n*n)
        {
            a[i--][j]=num++;// заполняем вверх
        }
        i++;// назад на одну строчку
        if(u>0)
            u--;// уменьшаем верхнюю границу
        j--;// уменьшаем номер текущего столбца
 
        while(j>=l && num<=n*n)
        {
            a[i][j--]=num++;// заполняем влево
        }
        j++;// назад на один столбик
        if(l>0)
            l--;// уменьшаем левую границу
        i++;// увеличиваем номер текущей строки
    
        while(i<=d && num<=n*n)
        {
            a[i++][j]=num++;// заполняем вниз
        }
        i--;// назад на одну строчку
        if(d<n-1)
            d++;// увеличиваем нижнюю границу
        j++;// увеличиваем номер текущего столбца
    }
    for(i=0; i<n; i++)// в этих циклах выводим те значения массива, которые меньше или равны введеному числу. Если число массива больше, то выводим вместо числа пробелы
    {
        for(j=0; j<n; j++)
        {
            if(a[i][j]<=N)
            {
                cout.width(3);
                cout<<a[i][j];
            }
            else
                cout<<"   ";
        }
        cout<<endl;
    }   
     return 0;
}
1
 Аватар для ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
08.10.2012, 19:02  [ТС] 17
Спасибо огромное!! Вы гений) я внииик)
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
10.10.2012, 15:23 18
Если воспользоваться поиском по форуму cyberforum.ru (ключевые слова "массив", "спираль"),
то можно найти другие подобные примеры.

Добавлено через 8 минут
Вот ещё пример.
Заполнение матрицы
0
10.10.2012, 15:23
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.10.2012, 15:23
Помогаю со студенческими работами здесь

Массив: Не могу заполнить массив, только самое большое значения...
Не могу заполнить массив только самое большое значения #include &lt;iostream&gt; using namespace...

Заполнить массив случайными числами и отобрать в другой массив все простые числа
заполнить массив случайными числами в интервале и отобрать в другой массив все простые числа....

Дан массив A[N]. заполнить массив В[N] элементами массива A[N], которые удовлетворяют двойному неравенству
Дан массив A. заполнить массив В элементами массива A, которые удовлетворяют двойному неравенству:...

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию....


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
Объекты и их имена
hw_wired 28.01.2025
Введение: Основы объектного подхода и их роль в информатике В современном мире информационных технологий объектный подход стал фундаментальным принципом организации и обработки информации. Этот. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru