Загрузка...

Перевод кода с C++ в C

Тема в разделе C/C++ создана пользователем Cyaneyed 29 сен 2019. 366 просмотров

Загрузка...
  1. Cyaneyed
    Cyaneyed Автор темы 29 сен 2019 Заблокирован(а) 191 9 май 2019
    Код

    #include<stdio.h>


    void Recur_Search(int sum,int n,int mas[],int &num_min,int num_cur,int mas_ef[],int mas_cur[]);

    void main()
    {
    int mas[100],n,sum;
    cout<<"Enter number = ";cin>>n;
    for(int i=0;i<n;i++)
    {
    cout<<"Enter "<<i+1<<" = ";
    cin>>mas[i];
    }
    cout<<"Suma = ";cin>>sum;
    cout<<"Bankomat = ";
    for(int i=0;i<n;i++)
    cout<<mas[i]<<" ";
    cout<<endl;
    int mas_ef[100],mas_cur[100],num_cur=-1,num_min=100,buf=n-1;

    Recur_Search(sum,n-1,mas,num_min,num_cur,mas_ef,mas_cur);
    if(num_min==100)cout<<"No solution";
    else
    {
    cout<<"Number of banknotes = "<<num_min<<endl;
    for(int i=0;i<num_min;i++) cout<<mas_ef[i]<<" ";
    }
    cout<<endl;
    }

    void Recur_Search(int sum,int n,int mas[],int &num_min,int num_cur,int mas_ef[],int mas_cur[])
    {
    if(num_cur!=-1)//начальная проверка - необходима из-за первого входа в рекурсивную процедуру
    {
    sum-=mas[n];//формирование суммы, необходимой для дозаполнения
    mas_cur[num_cur]=mas[n];//добавляем номинал к текущей последовательности
    num_cur++;
    }else num_cur=0;

    if(sum==0)//проверка, что необходимую сумму набрали.
    {
    if(num_min>num_cur)
    {//запись новой минимальной последовательности номиналов
    for(int i=0;i<num_cur;i++) mas_ef[i]=mas_cur[i];
    num_min=num_cur;
    }
    }
    else
    if((float(sum)/mas[n])<(num_min-num_cur)) //проверка на возможность добить сумму !!!текущими!!! максимальными купюрами
    //за меньшее количество купюр, чем текущее значение. Иначе возврат на предыдущую итерацию!!!
    {
    while((n>=0)&&(sum<mas[n])) n--;//поиск номинала меньше или равного необходимой суммы
    if(n>=0)//если нашелся необходимый номинал - обрабатываем дальше. Иначе возврат на предыдущую итерацию!!!
    {//последовательно прорабатываем все варианты для номиналов вниз
    for(int i=n;i>=0;i--) Recur_Search(sum,i,mas,num_min,num_cur,mas_ef,mas_cur);
    }
    }
    }



    Вот сам код,буду благодарен помощи
     
  2. de9x
    de9x 29 сен 2019 Frontend developer 141 3 янв 2019
    в чем проблема? настолько трудно cout и cin поменять на printf и scanf?
     
  3. Cyaneyed
    Cyaneyed Автор темы 30 сен 2019 Заблокирован(а) 191 9 май 2019
    да-да,ты сначало поменяй и скомпилируй потом пиши )
     
  4. Тушняк
    Тушняк 30 сен 2019 Заблокирован(а) 136 2 янв 2018
    нихуя не понял,наверно кому-то ты помог:2011_like:
     
  5. dxdydzdt
    dxdydzdt 30 сен 2019 3 22 сен 2019
    Cyaneyed, соглашусь, просто поменяй стандартные функции i/o плюсов на сишные...
     
  6. de9x
    de9x 1 окт 2019 Frontend developer 141 3 янв 2019
    нахуй мне нужно с этой хуйней возиться?
    --- Сообщение объединено с предыдущим 1 окт 2019
    просто покажи, где тут используются конструкции, которых нет в C?
     
    1 окт 2019 Изменено
  7. Cyaneyed
    Cyaneyed Автор темы 1 окт 2019 Заблокирован(а) 191 9 май 2019
    pezdec ты школа ремонта,во первых сам алгоритм и конструкция языка C++ отличается от C,хоть и функции знакомы...
     
  8. de9x
    de9x 1 окт 2019 Frontend developer 141 3 янв 2019
    что ты несёшь, какой блять алгоритм. выпились нахуй
    --- Сообщение объединено с предыдущим 1 окт 2019
    ты тут юзаешь только cin и cout - функции ввода/вывода, которые определены в библиотеке iostream, все, других функций тут нет(не включая определённых тобой). в C существует такой заголовочный файл, как stdio.h, в котором также определены функции ввода/вывода - scanf, printf.
    ни классы, ни шаблоны и прочие, не присущие си вещи, не используются в этом коде, следовательно, заменять тут(кроме функций ввода/вывода) ничего не надо.
    --- Сообщение объединено с предыдущим 1 окт 2019
    я предполагаю, что ты даже не понимаешь, что значит следующий код:
    Код

    int n;
    scanf("%i", &n);
    printf("%i\n", n);
     
  9. Cyaneyed
    Cyaneyed Автор темы 2 окт 2019 Заблокирован(а) 191 9 май 2019
    сейчас бы библиотеку stdio называть заголовочным файлом :D,слейся уебище
     
  10. de9x
    de9x 2 окт 2019 Frontend developer 141 3 янв 2019
    почитай о заголовочный файлах и, возможно, поймёшь, что <stdio.h>, все-таки является таким файлом. вообще, расширенние говорит само за себя h - header.
    --- Сообщение объединено с предыдущим 2 окт 2019
    эх, экспертов же по С развелось...
     
  11. Slaanesh
    Slaanesh 2 окт 2019 Немножко ереси на лолзе 466 4 сен 2018
    Всё по факту перемога папугы!
     
Top