Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
svisst
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 4
#1

Перевод кода из C++ - C (СИ)

16.12.2012, 11:50. Просмотров 376. Ответов 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
72
73
74
75
int main(int argc, char* argv[])
{
 
    int n,i,j,k,p=0,kb,q;
 
    unsigned long *SetP,CurrSet;
 
    double *X,*Y;
 
   printf("n=");
    scanf("%d",&n);
 
    X=new double[n];
    Y=new double[n];
 
        SetP=new unsigned long[n];
 
       for (i=0; i<n; i++)
    {
        printf( "X[%d]=",i);
        scanf("%f",& X[i]);
        printf( "Y[%d]=",i);
        scanf("%f",& Y[i]);
    }
    
    for (i=0; i<n; i++) SetP[i]=0;
 
    for (i=0; i<n-1; i++)
        for (j=i+1; j<n; j++)
        {
            CurrSet=0;
            CurrSet=CurrSet | (1 << i);
            CurrSet=CurrSet | (1 << j);
            kb=2;
 
            for (k=0; k<n; k++)
            {
 
                if ((k != i) && (k != j))
                    if (fabs((X[k]-X[i])*(Y[j]-Y[i])-(X[j]-X[i])*(Y[k]-Y[i])) <= 1.0E-9)
                    {
                                           CurrSet=CurrSet | (1 << k); 
                       kb++;
                    }
 
            }
 
            if (kb > 2)
            {
               q=0;
               for (k=0; k<p; k++)
                    if (CurrSet == SetP[k])
                    {
                      q=-1;
                      break;
                    }
                           if (q == 0) SetP[p++]=CurrSet;
            }
 
        }
 
    for (i=0; i<p; i++) 
    {
        for (j=0; j <= 31; j++)
            if (SetP[i] & (1 << j)) std::cout << j << " ";
        std::cout << std::endl;
    }
 
    delete [] X;
        delete [] Y;
    delete [] SetP;
    
    return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 11:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод кода из C++ (C (СИ)):

Перевод кода С++ на Си - C (СИ)
Здравствуйте! Прошу помощи в переводе данного кода с языка Cpp на язык Си. Буду очень благодарен за помощь! #include &lt;iostream&gt; ...

Перевод кода с C++ - C (СИ)
Доброго времени суток! помоги пожалуйста переделать код задачи из С++ в С #include &lt;iostream&gt; #include &lt;omp.h&gt; #define M 5000 ...

Перевод кода с C++ - C (СИ)
помогите пожалуйста перевести #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(int argc, char *argv) { ...

Перевод кода из с++ в с - C (СИ)
Господа, помогите перевести из с++ в си фрагменты кода, очень надеюсь) // пользовательские функции // меняем местами строки в...

Перевод кода с С++ на Си - C (СИ)
#include&lt;iostream.h&gt; #include&lt;conio.h&gt; int main() { clrscr(); int x,i,d; i = 2; cout &lt;&lt; &quot;Vvedit chyslo: &quot;; ...

Перевод кода из С++ в С - C (СИ)
Помогите пожалуйста перевести код из С++ и С #include &lt;iostream&gt; using namespace std; // В М void PrintMatr(int **mas, int m) { ...

7
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
16.12.2012, 12:28 #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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#include <alloc.h>
 
 
int main()
{
 
    int n,i,j,k,p=0,kb,q;
 
    unsigned long *SetP,CurrSet;
 
    double *X,*Y;
 
   printf("n=");
    scanf("%d",&n);
 
    X=(double *) malloc(n);
    Y=(double *) malloc(n);
 
        SetP=(unsigned*) malloc(n);
 
       for (i=0; i<n; i++)
    {
        printf( "X[%d]=",i);
        scanf("%f",& X[i]);
        printf( "Y[%d]=",i);
        scanf("%f",& Y[i]);
    }
 
    for (i=0; i<n; i++) SetP[i]=0;
 
    for (i=0; i<n-1; i++)
        for (j=i+1; j<n; j++)
        {
            CurrSet=0;
            CurrSet=CurrSet | (1 << i);
            CurrSet=CurrSet | (1 << j);
            kb=2;
 
            for (k=0; k<n; k++)
            {
 
                if ((k != i) && (k != j))
                    if (fabs((X[k]-X[i])*(Y[j]-Y[i])-(X[j]-X[i])*(Y[k]-Y[i])) <= 1.0E-9)
                    {
                                           CurrSet=CurrSet | (1 << k);
                       kb++;
                    }
 
            }
 
            if (kb > 2)
            {
               q=0;
               for (k=0; k<p; k++)
                    if (CurrSet == SetP[k])
                    {
                      q=-1;
                      break;
                    }
                           if (q == 0) SetP[p++]=CurrSet;
            }
 
        }
 
    for (i=0; i<p; i++)
    {
        for (j=0; j <= 31; j++)
            if (SetP[i] & (1 << j)) printf("%f ",j);
            printf("/n");
    }
 
    free(X);
    free(Y);
    free(SetP);
 
    return 0;
 
}


Добавлено через 11 минут
как то scanf коряво работает )=
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2012, 12:36 #3
Цитата Сообщение от Nixy Посмотреть сообщение
как то scanf коряво работает )=
Вы не правильно пишете
Цитата Сообщение от Nixy Посмотреть сообщение
scanf("%f",& X[i]);
C
1
scanf("%lf", &X[i]);
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
16.12.2012, 13:25 #4
Цитата Сообщение от go Посмотреть сообщение
Вы не правильно пишете

C
1
scanf("%lf", &X[i]);
я им не пользовался никогда, это с ТС скопировано, а lf что означает? f по спецификации это для плавающей запятой , а l?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2012, 14:00 #5
Nixy, f - float, l - long, т.е. double (двойной float)
0
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
16.12.2012, 14:04 #6
а почему с обычным float не работало?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
16.12.2012, 14:08 #7
Цитата Сообщение от Nixy Посмотреть сообщение
а почему с обычным float не работало?
Размер переменной разный, не так интерпретируется память.
1
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
16.12.2012, 14:20 #8
понял, нету автопреобразвования, увидел табличку спасибо
0
16.12.2012, 14:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 14:20
Привет! Вот еще темы с ответами:

Перевод кода с C++ - C (СИ)
Помогите,перевести,пожалуйста. #include &lt;iostream&gt; #define SIZE 10 int main(void) { int usr=0,i,j; float a,b; do { ...

Перевод кода на С - C (СИ)
#include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char *argv) { srand(time(NULL)); int i, j; ...

Перевод кода програми из С++ в С - C (СИ)
Помогите, пожалуйста перевести код. =) #include &lt;vcl.h&gt; #pragma hdrstop #include &lt;iostream&gt; #include&lt;time.h&gt; #include...

Перевод кода из Pascal - C (СИ)
program er; var n,i:longint; function polin(n:longint):boolean; var i,j:longint; s:string; itog:boolean; begin ...


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

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

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