Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
#1

Одномерный массив - C++

18.02.2011, 13:16. Просмотров 742. Ответов 18
Метки нет (Все метки)

Ребят помогите плиз решить одномерный и двумернй массив..на языке Си(не СИ++)
1.В целочисленном массиве после каждых 3-х отрицательных чисел идущих подряд вставить 0.
2.Сформировать матрицу размером М вида:
|M M-1...........2 |
http://www.cyberforum.ru/cpp-beginners/thread818345.html
|1 M...............3 |
|2 1 M............4 |
|3 2 1 ............5 |
|4 3 2.............. |
|.......................|
|M M-1 M-2......1 |
Буду очень благодарен..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2011, 13:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Одномерный массив (C++):

Массив: Все элементы массива, кратные трем, записать в одномерный массив.
Дан двумерный массив размером n x n? заполненный целыми числами. Все его...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив
ввести двумерный массив I . найти номера столбцов с положительными элементами и...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка),...

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

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный...

18
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 13:19 #2
С матрицей непонял а 1 счас зделаю токо Длинна масива ? и как заполняетса масив вводом или же обявляетса .?
И есче вопрос вставить ето как после 3 отрицательних 0 со сдвигом масива вправо? или же следующий заменить на 0
0
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 13:24  [ТС] #3
Спсик))

Добавлено через 15 секунд
Цитата Сообщение от archideus Посмотреть сообщение
С матрицей непонял а 1 счас зделаю токо Длинна масива ? и как заполняетса масив вводом или же обявляетса .?
длина массива 30)эм...я больше по дэлфи как бы...))и там есть автозаполнение через функцию рандом))вот тут так же))

Добавлено через 2 минуты
И есче вопрос вставить ето как после 3 отрицательних 0 со сдвигом масива вправо? или же следующий заменить на 0[/QUOTE]

со сдвигом...)
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 13:26 #4
если со сдвигом то масив должен бить об*явлен длиннее чем заполнен потому что если масив 30 то заполняя 31 ми заполним какуюто ячейку памяти неисключено системы или же последний (30) просто вибросить
0
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 13:29  [ТС] #5
глупый вопрос...а нельзя объявить массив 40 к примеру...а заполнить30? ну чтоб потом когда сдвигать...было куда))
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 13:30 #6
Цитата Сообщение от BloodBoom Посмотреть сообщение
глупый вопрос...а нельзя объявить массив 40 к примеру...а заполнить30? ну чтоб потом когда сдвигать...было куда))
Можна ок ща напишу
0
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 13:45  [ТС] #7
Окей=)

Добавлено через 12 минут
"2.Сформировать матрицу размером М вида:
|1 M M-1...........2|
|2 1 M............3..|
|3 2 1 ............4..|
|4 3 2.............. |
|.......................|
|M M-1 M-2......1 |"

Ошибся чуток=)
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 14:06 #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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define LEN 100
 
int main ()
{
    int array[LEN];
    int len = 30;
    int random;
 
    /* initialize random seed: */
    srand ( time(NULL) );
 
    /* array befor: */
    for ( int i = 0; i < len; i++ ) {
        random = rand() % 50 - 10;
        array[i] = random;
    }
        /* generate secret number: */
    for ( int i = 0; i < len; i++ ) {
        printf("%d ", array[i]);
    }
    printf("\n");
    for ( int i = 0; i <= len - 3; i++ ) {
        if ( array[i] < 0 && array[i+1] < 0 && array[i+2] < 0 ) {
            for ( int j = len; j > i+4; j-- ) {
                array[j] = array[j-1];
            }
            len++;
            array[i+3] = 0;
            i+=4;
        }       
    }
        /* array after: */
    for ( int i = 0; i < len; i++ ) {
        printf("%d ", array[i]);
    }
    printf("\n");
  return 0;
}
Наслаждайса от +1 неткажусь
std= C99
1
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 14:08  [ТС] #9
))Cпасибо))
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 14:17 #10
Если я правильно понял то при М=5 матрица будет


1 5 4 3 2
2 1 5 4 3
3 2 1 5 4
4 3 2 1 5
5 4 3 2 1
0
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 14:22  [ТС] #11
Цитата Сообщение от archideus Посмотреть сообщение
Если я правильно понял то при М=5 матрица будет


1 5 4 3 2
2 1 5 4 3
3 2 1 5 4
4 3 2 1 5
5 4 3 2 1
угу...такой и будет, только..как написать при М изменяющимся я без понятия))
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 14:42 #12
Могу поизвращатса с применением масива
Просто пару дней назад писал функцыю сдвига масива ща подкоректирую и виложу возьму м макс 100
тоесть м от 1 до 100
ето будет оч простой код
1
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 14:44  [ТС] #13
Если не очень сложно выложи плз)
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 15:03 #14
Лови

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
#include <stdio.h>
 
#define LEN 100
 
void shift(int array[], int len) {
    int last;
    
    last = array[len-1];
    for ( int i = len - 1; i > 0; i-- ) {
        array[i] = array[i-1];
    }
    array[0] = last;
}
 
void printarray(int array[], int len) {
    printf("%2d", array[0]);
    for ( int i = 1; i < len; i++ ) {
        printf(" %2d", array[i]);
    }
    printf("\n");
}
int main() {
    int array[LEN];
    int m;
    
    scanf("%d", &m);
    //строим масив от   m до 1
    for ( int i = 0, n = m ; i < m ; i++ , n--) {
        array[i] = n;
    }
       // виводим М раз постоянно здвигая
    for ( int i = 1; i <= m; i++ ) {
        shift(array, m);
        printarray(array, m);
    }
    return 0;
}
Добавлено через 3 минуты
Блин у меня командная строко больше 25 невмещает в ширину
1
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 15:14  [ТС] #15
в нём и запускаю...вернее пытаюсь))хД)))щас смд скачаю))
спасибки)

Добавлено через 8 минут
мде...Линукс раза в 3-и луше виндовса...)ХД) а то я тут на винде не могу даж понять как запустить написаное))
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 15:17 #16
Добавлено через 8 минут
мде...Линукс раза в 3-и луше виндовса...)ХД) а то я тут на винде не могу даж понять как запустить написаное))[/QUOTE]

А тогда запускай в чем удобнее. С всюда одинаково пашет что линух что винда что мак
И тебе спасибо за +
0
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 15:19  [ТС] #17
Не...я в нотпад++ загнал это)0а как запустить не знаю))В линуксе компилятор С стоит..остаётся тока написать гсс -0 имя файла и конечное имя))а тут вот ломаю голову
0
archideus
10 / 10 / 1
Регистрация: 15.10.2010
Сообщений: 34
18.02.2011, 15:28 #18
gcc -std=C99 -o <имя создаваемого файла (test.exe)> <исходник к прримеру test.c>

C99 надо полюбому потому что я переменние для цыкла об*являю в самом цикле
файлик должен бить где гцц и ти должен находитса в папке с гцц если неуказивать путь
gcc -std=c99 -o test.exe test.c - пример ето я у себя компилил прямо из нотпада
0
BloodBoom
0 / 0 / 0
Регистрация: 18.02.2011
Сообщений: 10
18.02.2011, 15:36  [ТС] #19
тогда вопрос это в нотпаде или в смд?

Добавлено через 4 минуты
а всё понял))я забыл гцц скачать хД)
0
18.02.2011, 15:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2011, 15:36
Привет! Вот еще темы с решениями:

Сгенерировать одномерный массив A в диапазоне [-20; 20] и сформировать новый массив B из отрицательный элементов массива
Здравствуйте. Помогите, пожалуйста, дорешать задачу. Нужно сгенерировать...

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

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы.
Пожалуйста, помогите решить простым методом задачку, просто не могу понять...

Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически
1)сформировать одномерный массив целых чисел 2)удалить первый элемент с...


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

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

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