Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
1

Задача со звездочкой, на логику (про массив)

03.04.2023, 20:07. Показов 1507. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Придумал чепуху чтобы вы поломали головы. Есть массив
C
1
int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Нужно вывести его елементы в их порядке, то есть 0 1 2 3 4 5 6 7 8 9, но нужно ето сделать при помощи [B][I][U]двух[B][U][I] циклов, причем один цикл будет печатать парные индексы, а второй - непарные.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2023, 20:07
Ответы с готовыми решениями:

Задача на логику, про путешественника и ограниченный бюджет
Путешественник располагает суммой Р рублей. Он может двигаться со скоростью 5км/ч бесплатно, со...

Подскажите про логику
Для расчета ставки надо знать: длительность операции, (первоначальную стоимость И величину...

Задача про массив
Здравствуйте, дан массив А{1,2,3,4}. Нужно составить всевозможные комбинации этих чисел. Помогите...

Задача про массив
Дано натуральное число N и массив из N целых чисел a1, a2, ..., an. Над элементами массива...

Задача про массив
Здравствуйте помогите пожалуйста написать программу на Delphi 7. В визуальном варианте Дан...

35
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
03.04.2023, 20:23 2
Цитата Сообщение от Hats Посмотреть сообщение
парные индексы, а второй - непарные.
а что это значит?
0
Нарушитель
499 / 656 / 85
Регистрация: 23.11.2021
Сообщений: 3,619
Записей в блоге: 6
03.04.2023, 20:37 3
Может, четные-нечетные?
Да легко: запускаем два потока, на оба - один общий мьютекс. И поочередно выводим…
0
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
03.04.2023, 20:41  [ТС] 4
Цитата Сообщение от Алексей1153 Посмотреть сообщение
а что это значит?
Что первый цикл проходит по парным индексам, а второй - по непарным, то есть первый по 0,2,4,6,8, второй - 1,3,5,7,9

Добавлено через 1 минуту
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Может, четные-нечетные?
А, да, именно так, я слова перепутал

Добавлено через 2 минуты
Цитата Сообщение от Eddy_Em Посмотреть сообщение
мьютекс
???
0
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
03.04.2023, 20:42 5
Hats, данивапрос
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main()
{
    int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    for(size_t i=0; i!=sizeof array/sizeof*array; i++)
    {
        if(i%2)
        {
            printf("%d,",array[i]);
        }
        else for(;!printf("%d,",array[i]);)
        {
        }
    }
}
0,1,2,3,4,5,6,7,8,9,
1
Нарушитель
499 / 656 / 85
Регистрация: 23.11.2021
Сообщений: 3,619
Записей в блоге: 6
03.04.2023, 20:47 6
Цитата Сообщение от Hats Посмотреть сообщение
???
Позорище, про мьютексы не знать!
А ты без них никак эту задачу не решишь. Т.к. твое условие - два одновременно работающих цикла. Без мьютексов/семафоров или прочих способов блокировки у тебя будет хрен знает что на выходе. В общем, читай man pthread_mutex_lock
0
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
03.04.2023, 20:55  [ТС] 7
Цитата Сообщение от Алексей1153 Посмотреть сообщение
данивапрос
А обяснить сможете? Почему тип i size_t и что за
печатать "%d,",array[i] пока не printf("%d,",array[i])
0
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
03.04.2023, 20:57 8
Hats, нет, не смогу (

Добавлено через 17 секунд
само нажималось, нажималось, и вот
0
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 17
03.04.2023, 21:01  [ТС] 9
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Позорище, про мьютексы не знать!
Семь месяцев прошло как "Hello, world!" впервые написал. Еще не учил такое

Добавлено через 2 минуты
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Hats, нет, не смогу
Ну и ладно
0
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
03.04.2023, 21:02 10
Hats, хех, а чем занимался 6 месяцев, 29 дней и 23 часа ? Поди в танки гонял
0
Нарушитель
499 / 656 / 85
Регистрация: 23.11.2021
Сообщений: 3,619
Записей в блоге: 6
03.04.2023, 21:14 11
Цитата Сообщение от Hats Посмотреть сообщение
Семь месяцев прошло как "Hello, world!" впервые написал.
За это время можно было бы все примеры из K&R сделать, а потом - из Богатырева. Крайне рекомендую. Ну и Стивенса почитать: IPC в UNIX. Тогда можно будет вполне себе клиент-серверные приложения писать и всякое прочее.
0
414 / 287 / 59
Регистрация: 09.03.2016
Сообщений: 2,522
04.04.2023, 01:10 12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int _tmain(){
 
int array[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int i = 0;
 
begin:
 
while (i < 9){
 
    if (i++ % 2 == 0){ printf("%d<", array[i]); break; }
}
while (i < 9){
 
    if (i++ % 2 != 0){ printf("%d>", array[i]); break; }
}
if (i < 8)goto begin;
 
getchar();
    return 0;
}
0
414 / 287 / 59
Регистрация: 09.03.2016
Сообщений: 2,522
04.04.2023, 01:13 13
Название: NewPicture29.png
Просмотров: 68

Размер: 1.8 Кб
Последнюю цифру не выводит. Не доделал.
while (i < 9){
Так выводит.....

if (i < 9)goto begin;
getchar();
return 0;
}
0
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
04.04.2023, 06:47 14
ждём в топике знатока корутин из 20++ Я знаю, что там возможно сделать задуманное, но ещё сам не ковырялся с ними
0
Лежебока
317 / 234 / 94
Регистрация: 12.05.2021
Сообщений: 1,337
04.04.2023, 08:33 15
Цитата Сообщение от Hats Посмотреть сообщение
Нужно вывести его елементы в их порядке, то есть 0 1 2 3 4 5 6 7 8 9, но нужно ето сделать при помощи [B][I][U]двух[B][U][I] циклов, причем один цикл будет печатать парные индексы, а второй - непарные.
C
1
2
3
4
5
6
7
8
9
10
int main() {
    int i,j;
    char mas[] = {0,1,2,3,4,5,6,7,8,9};
    int len = sizeof(mas)/sizeof(mas[0]);
    for(i = 0;i < len;i++)
        if(i%2)
            for(j = i;j < i+1;j++)
                printf("%d",mas[i]);
        else printf("%d",mas[i]);
}
0
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
04.04.2023, 08:46 16
Цитата Сообщение от Алексей1153 Посмотреть сообщение
из 20++
собственно, чего это я. Тут же Си
0
1287 / 880 / 254
Регистрация: 30.06.2015
Сообщений: 4,592
Записей в блоге: 51
04.04.2023, 10:05 17
Цитата Сообщение от Hats Посмотреть сообщение
Придумал чепуху чтобы вы поломали головы
Много на себя берешь, бро.
0
Нарушитель
499 / 656 / 85
Регистрация: 23.11.2021
Сообщений: 3,619
Записей в блоге: 6
04.04.2023, 11:27 18
Я вот подумал, что не нужны здесь никакие мьютексы: хватит обычных (даже не атомарных) флагов: int flage=0, flago=1;.
Запускаем два потока: в одном цикл по нечётным, в другом - по четным. И элементарно внутри первого:
C
1
2
3
4
while(flage);
flage=1;
printf("%d ", i);
flago=0;
Аналогично в цикле с четными. Запускаем их в 2 потока и все ок.
Могу, если интересно, накатать, как до работы дойду: на планшете даже компилятора-то нет...
0
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
04.04.2023, 11:36 19
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Аналогично в цикле с четными. Запускаем их в 2 потока и все ок.
flage и flago используются в двух потоках, значит требуют синхронизации
0
Нарушитель
499 / 656 / 85
Регистрация: 23.11.2021
Сообщений: 3,619
Записей в блоге: 6
04.04.2023, 13:32 20
Цитата Сообщение от Алексей1153 Посмотреть сообщение
требуют синхронизации
Ну, для спокойствия душевного их можно сделать атомарными, но уверяю, даже неатомарные не повлияют на ход управления. Сейчас код набросаю.
0
04.04.2023, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2023, 13:32
Помогаю со студенческими работами здесь

Задача про массив
Дан массив размера N. Найти минимальный из его локальных максимумов. локальный максимум — это...

Про логику движения по окружностям
Вот часто смотрю на графические примеры с вращением или движением по окружности или дугам, и не...

Про логику работы игры
Итак, хочу попросить у вас помощи. Так как с логикой у меня туго) У меня есть игровое поле 700...

Задача про двумерный массив
Вот условие: Дана целая матрица размером (n*m) n, m &lt;=10. Упорядочить (переставить) строки матрицы...

задача про одномерный массив
Формулировка. Определите второй (по значению) наибольший элемент одномерного массива A(M). Формат...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru