Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Vaderkos
77 / 77 / 5
Регистрация: 31.03.2015
Сообщений: 436
1

Перевести из с++ в с

16.06.2015, 22:31. Просмотров 897. Ответов 6
Метки нет (Все метки)

Нужно перевсти код из с++ в с
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
#include <iostream>
#include <cmath>
#include <vector>
#include <string>
using namespace std;
string s;
vector<string> fun(vector<string> arr){
    int w = arr.size();
    int n = pow(2, w);
    vector<string> t(n);
    
    for (int i = 0; i < n; i++){    
        s += "{";
        for (int j = 0; j < w; j++){
            if (i&(1 << j)){
                s += " " + arr[j] + " ";
            }
        }
        s += "}";
        t.at(i) = s;
        s = "";
    }
    return t;
}
int main(){
    int P; cin >> P;
    int l; cin >> l;
 
    vector<string> x(l);
    for (int i = 0; i < l; i++){
        cin >> x[i];
    }
    for (int y = 0; y < P; y++){
        x = fun(x);
    }
    for (int k = 0; k < x.size(); k++){
            cout << x[k] << endl;
    }
    return 0;
    
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2015, 22:31
Ответы с готовыми решениями:

Перевести с С++ в Си
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cctype&gt; #include &lt;cstring&gt;...

Перевести в Си
Нужно перевести в Си. int main() { //Вывести упорядочены по убыванию...

Перевести с С++ на Си
1) Необходимо перегрузить операцию индексирования. 2) Максимально возможный...

Перевести с С# на Си
public class Number { protected readonly float _value; ...

Перевести с С++ на С
Помогите пожалуйста, нужно перевести код с С++ на С #include &quot;stdafx.h&quot;...

6
zss
Модератор
Эксперт С++
7763 / 7000 / 4394
Регистрация: 18.12.2011
Сообщений: 18,508
Завершенные тесты: 1
17.06.2015, 11:02 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <conio.h>
#pragma warning(disable:4996)
void fun(char** arr,char** t,int w)
{
    char s[100]={0};
    int n = 1<<w;
    for (int i = 0; i < n; i++)
    {    
        strcat(s,"{");
        for (int j = 0; j < w; j++)
        {
            if (i&(1 << j))
            {
                strcat(s," ");
                strcat(s,arr[j]);
                strcat(s," ");
            }
        }
        strcat(s,"}");
        strcpy(t[i],s);
        s[0]=0;
    }
}
int main()
{
    int P,l,i,n,k; 
    char** x;
    char** t;
    scanf("%d%d",&P,&l);
    x=(char**)malloc(sizeof(char*)*l);
    for (i = 0; i < l; i++)
    {
        x[i]=(char*)malloc(sizeof(char)*100);
        scanf("%s",x[i]);
    }
    n=(1<<l);
    t=(char**)malloc(sizeof(char*)*n);
    for (int i = 0; i < n; i++)
        t[i]=(char*)malloc(sizeof(char)*100);
    for (i = 0; i < P; i++)
    {
        fun(x,t,l);
        for (k = 0; k < n; k++)
            printf("%s\n",t[k]);
    }
    for (i = 0; i < l; i++)
        free(x[i]);
    free(x);
    for (i = 0; i < n; i++)
        free(t[i]);
    free(t);
    getch();
    return 0;
    
}
0
Vaderkos
77 / 77 / 5
Регистрация: 31.03.2015
Сообщений: 436
17.06.2015, 13:31  [ТС] 3
zss, К сожалению не работает для нескольких P.
0
zss
Модератор
Эксперт С++
7763 / 7000 / 4394
Регистрация: 18.12.2011
Сообщений: 18,508
Завершенные тесты: 1
17.06.2015, 13:53 4
От P программа не зависит.
Просто вызывается P раз одна и та же функция.
Я не понимаю, что Вы там имели ввиду
0
Vaderkos
77 / 77 / 5
Регистрация: 31.03.2015
Сообщений: 436
17.06.2015, 17:13  [ТС] 5
zss, Очень даже зависит, p раз мы выполняем x = f(x) то есть с полученными значениями мы заново выполняем функцию
0
zss
Модератор
Эксперт С++
7763 / 7000 / 4394
Регистрация: 18.12.2011
Сообщений: 18,508
Завершенные тесты: 1
17.06.2015, 17:16 6
А как Вы можете выполнить это присваивание?
У Вас у матрицы arr количество строк w, а у матрицы t - 2w
Добавьте копирование нужных строк из одной в другую (не более w штук).
0
Vaderkos
77 / 77 / 5
Регистрация: 31.03.2015
Сообщений: 436
17.06.2015, 17:17  [ТС] 7
С обычными массивами у меня не вышло, поэтому я использовал vector
0
17.06.2015, 17:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2015, 17:17

Перевести с С++ в Си
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; int main() { ...

Перевести с С++ в С
Помогите перевести на С #include&lt;iostream&gt; using namespace std; int A;...

Перевести с С++ в С
#include&lt;iostream&gt; using namespace std; int A; int B; int C; void...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru