Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

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

перевод из С++ в Си - C++

31.05.2012, 20:35. Просмотров 401. Ответов 3
Метки нет (Все метки)

нужно эту задачу из С++ перевести в Си.
C++ (Qt)
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
#include <iostream>
#include <stdlib.h>
#include <math.h>
 
using namespace std;
 
int main()
{
double x,y,y1,c;
int i=0;
cout « "Enter X"«endl;
cin » x;
y=x;
y1=x;
while (1)
{
y=y1;
y1=y+(y-(pow(y,4)/x))/3;
i++;
c=y1-y;
cout « "Step " « i « " yi= "« y «endl«c«endl;
if (fabs(c) <= 0.02/10000) break;
system("pause");
}
cout « "End." «endl;
system("pause");
return(0);
}
если там что то не правильно,то вот смысл задачи: Заранее буду благодарен
Миниатюры
перевод из С++ в Си  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 20:35     перевод из С++ в Си
Посмотрите здесь:

C++ перевод в С
C++ Перевод из C++ в C
C++ перевод из с++ в с
Перевод C++
Перевод C++
C++ Перевод в 8-ю ЧС
C++ Перевод на С++
C++ Перевод
C++ Перевод из C в С++
Перевод С++ в Си C++
Перевод с С на С++ C++
Перевод из С++ в Си C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
01.06.2012, 11:26     перевод из С++ в Си #2
VKhan, просто замените ввод/вывод на С манер через printf()/scanf()
-=ЮрА=-
Заблокирован
Автор FAQ
01.06.2012, 12:15     перевод из С++ в Си #3
Цитата Сообщение от insolent Посмотреть сообщение
просто замените ввод/вывод на С манер через printf()/scanf()
также надо подправить хедеры и посмотреть алгоритм.

VKhan, вот слегка подправленный твой алгоритм. Он имеет более мене защищённый ввод + отстроен распознать значение х == 0 при котором алгоритм работать не будет pow(y,4.0)/x - деление на ноль
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
#include <math.h>
#include <stdio.h>
 
int main()
{
    double x = 0;
    double y = 0;
    double y_1;
    long i;
    while(1)
    {
        printf("Enter x : ");
        if(!scanf("%lf",&x) || getchar() != '\n')
        {
            while(getchar() != '\n'){}
            printf("bad input\n");
        }
        else
        {
            if((y_1 = x) != 0)
            {
                i = 0;
                do
                {
                    y   = y_1;
                    y_1 = y + (y - pow(y,4.0)/x)/3;
                    printf("Iteration %d\n", (i = i + 1));
                    printf("y = %lf\t error = %lf\n", y_1, fabs(y_1 - y));
                }
                while(2*pow(10.0,-6.0) < fabs(y_1 - y));
            }
            printf("answer : %lf\n",y_1);   
        }
    }
    return 0;
}
Миниатюры
перевод из С++ в Си  
-=ЮрА=-
Заблокирован
Автор FAQ
01.06.2012, 12:23     перевод из С++ в Си #4
Следует отметить что указанная на рисунке формула применима лишь для значений х по модулю меньших единицы. Результат тестирования приложения при некорректном вводе представлен на скриншоте.

PS:Лично для меня остаётся непонятным вопрос почему кодпад не распознаёт pow
http://codepad.org/neq41IRr буду благодарен за объяснение
Миниатюры
перевод из С++ в Си  
Yandex
Объявления
01.06.2012, 12:23     перевод из С++ в Си
Ответ Создать тему
Опции темы

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