Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 15.11.2017
Сообщений: 34

Нужно переделать программу с С++ в СИ

20.12.2017, 13:54. Показов 1375. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста переделать этот код на язык СИ.
Программа работает , но нельзя сдать, тк написана на С++.

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
67
68
69
70
71
#define _CRT_SECURE_NO_WARNINGS
#include <math.h>
#include <vector>
#include <stdio.h>
 
using namespace std;
int main() 
{
    int N, S;
 
    printf("Enter N, elements, S\n");
 
    scanf("%d", &N);
    if ((N < 2) || (N > 24))
    {
        printf("Mistake (N)");
    }
 
    int m[25];
    for (int i = 0; i < N; i++)
    {
        scanf("%d", &m[i]);
 
        if ((m[i] < 0) || (m[i] > 5 * 10000000))
        {
            printf("Mistake (m[i])");
        }
    }
 
    scanf("%d", &S);
    if ((S<(-1000000000)) || (S>1000000000))
    {
        printf("Mistake (S)");
    }
 
    int b;
    b = pow(2, N - 1);
 
    while (--b>-1) 
    {
        vector <int> a1(25);
        int b1 = b, c = 0, answer = m[0];
 
        for (int i = 0; i < N - 1; i++) 
        {
            if (b1 % 2) a1[c] = 1;
            b1 /= 2;
            if (a1[i]) answer += m[i + 1];
            else answer -= m[i + 1];
            c++;
        }
 
        if (answer == S) 
        {
            for (int i = 0; i< N - 1; i++) 
            {
                if (a1[i])
                {
                    printf("%d+", m[i]);
                }
                else
                {
                    printf("%d-", m[i]);
                }
            }
            printf("%d=%d", m[N - 1], S);
            return 0;
        }
    }
    printf("No solution");
}
Добавлено через 21 минуту


Основная сложность с вектором.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2017, 13:54
Ответы с готовыми решениями:

Нужно переделать программу
Нужно переделать. Условие задачи : Сделайте, какой можете 1-С массивами RECORD, процедурами, текстовыми и типизированными файлами...

Нужно переделать программу
Нужно сделать такую программу только через функции. #include #include int main(){ double xn,xk,dx,a,c,f=0; ...

Нужно переделать программу с СИ на С++
#include &lt;iostream&gt; using namespace std; int main() { int N; //srand(time(NULL)); cout &lt;&lt; &quot;Please, enter the size of...

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
20.12.2017, 13:59
C++
1
int a1[25];
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
20.12.2017, 14:01
Цитата Сообщение от ALexAlexAlexAle Посмотреть сообщение
Основная сложность с вектором.
Не вижу этой сложности
Цитата Сообщение от ALexAlexAlexAle Посмотреть сообщение
vector <int> a1(25);
замените на
C++
1
int a1[25];
0
0 / 0 / 0
Регистрация: 15.11.2017
Сообщений: 34
20.12.2017, 14:02  [ТС]
nmcf, так она не работает

Добавлено через 1 минуту
zss, для индекса требуется массив или указатель
Цитата Сообщение от zss Посмотреть сообщение
замените на
C++
int a1(25);
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
20.12.2017, 14:05
Цитата Сообщение от ALexAlexAlexAle Посмотреть сообщение
b = pow(2, N - 1);
А вот это на
C++
1
b=2<<N-2;
Добавлено через 1 минуту
Цитата Сообщение от ALexAlexAlexAle Посмотреть сообщение
требуется массив или указатель
Пардон, скобки надо квадратные, не разглядел сразу.
0
0 / 0 / 0
Регистрация: 15.11.2017
Сообщений: 34
20.12.2017, 14:07  [ТС]
zss, из С++ в СИ, а не наоборот.

Добавлено через 1 минуту
zss,
Цитата Сообщение от zss Посмотреть сообщение
скобки надо квадратные, не разглядел сразу.
С квадратными работает не правильно.
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
20.12.2017, 14:09
Лучший ответ Сообщение было отмечено ALexAlexAlexAle как решение

Решение

Цитата Сообщение от ALexAlexAlexAle Посмотреть сообщение
С квадратными работает не правильно.
В чем заключается неправильность?
Если в том, что Вы ленитесь инициализировать элементы массива, то напишите так
C++
1
2
3
    
 
int a1[25]={0};
0
0 / 0 / 0
Регистрация: 15.11.2017
Сообщений: 34
20.12.2017, 14:11  [ТС]
zss, я не ленюсь. Я пока не очень хорошо разбираюсь в программировании, т.к. занимаюсь этим 4 месяца.
Большое спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.12.2017, 14:11
Помогаю со студенческими работами здесь

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

Нужно переделать программу из C++ в C
Вот собственно и она. Заранее благодарен #include &lt;iostream&gt; using namespace std; int main() { const int m = 4 , n...

Программу С++ нужно переделать в С
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cctype&gt; int main() { std::string str ; std::getline ( std::cin ,...

Нужно программу на Паскале переделать в программу на С++
Помогите, пожалуйста!!! У меня есть программа на Паскале , а нужно ее переписать, чтобы она была на С++ (windows консоль). Текст...

Нужно переделать программу с процедурой.
program pr1; var a:array of integer; i,j:integer; procedure stolbec(i:integer;j:integer); var g,s:integer; begin g:=0; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru