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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
#1

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

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

Заполнить массив таким вот образом
Заполнить массив
!Только пожалуйста не использую очень сложные функции. Проходим С++ 5 неделю и прошли недавно только массивы..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2012, 23:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить массив (C++):

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

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

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

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

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

Массив: Заполнить массив из 10 элементов случайным образом в интервале (0..3). - C++
Заполнить массив из 10 элементов случайным образом в интервале (0..3). Например: {1,2,0,3,1,2,3,3,0,1}

17
AnreyKazakov
Заблокирован
06.10.2012, 23:55 #2
Даже не знаю, всегда представлял себе массив в виде прямой линии, за что ж его так загнули?
0
ilyasfromkz
-1 / 1 / 0
Регистрация: 12.09.2012
Сообщений: 46
06.10.2012, 23:57  [ТС] #3
Цитата Сообщение от AnreyKazakov Посмотреть сообщение
Даже не знаю, всегда представлял себе массив в виде прямой линии, за что ж его так загнули?
училка наша злая нас загнула и массив тоже)
я смогу написать это на паскале но вот перевести в си++ нет((
0
AnreyKazakov
Заблокирован
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
AnreyKazakov
Заблокирован
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
AnreyKazakov
Заблокирован
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/tumblr_m5cxawx9cP1roy0kko1_500.gif
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
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
08.10.2012, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2012, 18:15
Привет! Вот еще темы с ответами:

STL: Создать массив длины N. Заполнить массив рандом. Найти все различные числа массива - C++
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив случайными целыми числам. Найти все различные числа массива. Для...

Заполнить массив A и массив B нулями - C++
кто соображает попробуйте сделать я просто дуб в этом . 1.Создать 2 массива A и B из элементов типа char по 10 элементов Заполнить...

Заполнить массив - C++
Нужно заполнить массив 40 рандомными значениями, найти &quot;максимальное&quot; значение а все до &quot;максимального&quot; заполнить - 0 (нулями). Прошу...

заполнить массив - C++
Привет. Помогите пожалуйста, нужно рандомно заполнить прямоугольный(!) массив. Буду очнь благодарна


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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