Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2022, 20:10   #1
ok.ko19
Пользователь
 
Регистрация: 15.10.2021
Сообщений: 19
По умолчанию Как вывести не только числа, но и их индексы?

Код:
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>
#include <malloc.h>
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int* a;
    int* b = NULL;
    int i, j, n, m, k, p = 0;
    printf("Введите количество населенных пунктов (m): \n");
    scanf(" %d", &m);
    printf("Введите количество кандидатов (n): \n");
    scanf(" %d", &n);
    a = (int*)malloc(m * n * sizeof(int));
    printf("Введите элементы массива \n");
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            scanf("%d", a + i * n + j);
    printf("Вывод элементов массива \n");
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            printf("a[%d][%d] = %d \n", i + 1, j + 1, *(a + i * n + j));
    printf("Введите число 'k':\n");
    scanf("%d", &k);
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
        {
            if (*(a + i * n + j) < k)
            {
                b = (int*)realloc(b, (p+1) * sizeof(int)); 
                b[p] = *(a + i * n + j);
                p++;
            }
        }
    printf("Вывод элементов массива:\n");
    for (int l = 0; l < p; l++) {
        printf("%d \t", b[l]);
    }
    free(a); 
    return 0;
}
ok.ko19 вне форума Ответить с цитированием
Старый 29.01.2022, 21:00   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Массив b тоже надо освобождать. А чтобы потом вывести исходные индексы, то нужно сохранять их куда-то (например, сразу 3 числа в массив b добавлять, а потом по 3 выводить).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 02.02.2022, 11:59   #3
ok.ko19
Пользователь
 
Регистрация: 15.10.2021
Сообщений: 19
По умолчанию

BDA, спасибо) я потом заметил, что забыл обнулить
ok.ko19 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввести строку. Вывести только различные встречающиеся отрицательные действительные числа.(программа на си) Кристина1998 Помощь студентам 11 12.11.2016 12:02
Ввести строку. Вывести только различные встречающиеся отрицательные действительные числа.(программа на си) Кристина1998 Помощь студентам 0 07.11.2016 17:38
С++ Как вывести только отрицательные числа Катя08 Общие вопросы C/C++ 3 23.02.2016 09:46
(С++) Вывести все числа (от 1 до 300), которые делятся ТОЛЬКО на 2 или 5 fss1994 Помощь студентам 6 23.10.2013 00:07
Вывести на экран только отрицательные четные числа из диапазона от А до В (А В) d_dima Паскаль, Turbo Pascal, PascalABC.NET 4 16.04.2013 11:01