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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2022, 13:21   #1
ok.ko19
Пользователь
 
Регистрация: 15.10.2021
Сообщений: 19
По умолчанию Надо пофиксить (Си)

Условие: используя тип структуры и директивы препроцессора, составить программу для ввода информации о N видах компьютерной техники, о которой известно: фирма-производитель, тип ((принтер, сканер, ноутбук, мышка, клавиатура), цвет, модель), получить цену по формуле y=3x^2+4x-2, где х равен номер варианта плюс N. Отсортировать цены на компьютерную технику методом «пузырька» в порядке возрастания.
Код:
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>
#include <math.h>
 
#define N 5 
#define M 15
#define PRI(X) 3*X*X+4*X-2 
 
typedef struct Ctechnology 
{
    char firma[M];
    char type[M];
    int price[];
} comp;
 
void Sort(int* mas);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    comp a;
 
    printf("Введите фирму-производителя, тип компьютерной техники, цену буде рассчитано - (y=3x^2+4x-2)\n ");
    for (int i = 0; i < N; i++)
    {
        a.price[i] = PRI(((i + 1)+N)); // тут ошибка
        printf("%d) ", i + 1);
        scanf("%s %s", a.firma, a.type);
        printf("\n                              | [%d] | Фирма %10s | Тип %10s | Цена %10d |\n", i + 1, a.firma, a.type, a.price[i]);
    }
    Sort(a.price);
    return 0;
} // тут при откладке выбивает ошибку 
 
void Sort(int* mas)
{
    // сортировка массива пузырьком 
    int swap;
    for (int i = N-1; i >=0; i--)
    {
        for (int j = 0; j < i; j++) {
            if (mas[j] > mas[j + 1]) {
                swap = mas[j];
                mas[j] = mas[j + 1];
                mas[j + 1] = swap;
            }
        }
    }
}
ok.ko19 вне форума Ответить с цитированием
Старый 24.03.2022, 13:26   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

char - это 1 символ

Код:
int price[];
Какой размер у массива?
ForenLi вне форума Ответить с цитированием
Старый 24.03.2022, 13:27   #3
ok.ko19
Пользователь
 
Регистрация: 15.10.2021
Сообщений: 19
По умолчанию

ForenLi, int price[N];
ok.ko19 вне форума Ответить с цитированием
Старый 24.03.2022, 13:32   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Или M?
ForenLi вне форума Ответить с цитированием
Старый 24.03.2022, 13:48   #5
ok.ko19
Пользователь
 
Регистрация: 15.10.2021
Сообщений: 19
По умолчанию

ForenLi, я пробовал разные числа, ошибка одна и та же
ok.ko19 вне форума Ответить с цитированием
Старый 24.03.2022, 14:00   #6
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Какая?
ForenLi вне форума Ответить с цитированием
Старый 24.03.2022, 14:18   #7
ok.ko19
Пользователь
 
Регистрация: 15.10.2021
Сообщений: 19
По умолчанию

ForenLi, Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.
ok.ko19 вне форума Ответить с цитированием
Старый 24.03.2022, 14:23   #8
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Вы размер прописали?
ForenLi вне форума Ответить с цитированием
Старый 24.03.2022, 14:43   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Структура содержит описание одного вида техники, но структур несколько, так что примерно так:
Код:
typedef struct Ctechnology 
{
    char firma[M];
    char type[M];
    int price;
} comp;
...
comp a[N];
И придется немного поправить код ввода и сортировки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 24.03.2022, 14:45   #10
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Структура содержит описание одного вида техники, но структур несколько
У ТС задумка была другая - структура массивов, а не массив структур.
ForenLi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C] Помогите пофиксить ограничитель KiskaZeroOne Помощь студентам 4 04.07.2019 16:04
Пофиксить Woocommerce + Paypal Oly-oly Фриланс 0 10.02.2015 14:30
Помогите пофиксить запрос sql Matras Помощь студентам 5 17.01.2014 18:43
Пофиксить баги в php скрипте Cone PHP 0 02.09.2011 18:32
Автопарсер гугла, пофиксить баги gamer123 Общие вопросы Delphi 0 05.09.2010 20:55