Консультация № 142105
24.08.2008, 15:22
0.00 руб.
0 8 1
Здравсвуйте эксперты, такой вот код:

main()



{
float x,y;
printf("x=");
scanf("%e",&x);
y=sqrt(x);
printf("y= %e\n",y);
y=x*x;
printf("y= %e\n",y);

}
выдает такое:
x=9
y= -3.27000e+04
y= 8.10000e+01

что я делаю не так, до этого всегда писал на Паскале сейчас пытаюсь на Си адапитироваться, функцию sqr похоже нет
подскажите пожалуйста

Обсуждение

давно
Старший Модератор
17042
808
24.08.2008, 15:51
общий
Приведите текст на Паскале, который Вы пытаетесь перевести на Си. Тогда будет понятно, что Вы хотели получить. Или просто словесное описание задачи.
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Неизвестный
24.08.2008, 15:58
общий
так просто хочу из числа корень вычеслить и в квадрат его возвести, вот так вот попробовал и ниже написал что получилось, на паскале это будет так:
var
x,y:real;
begin
write('x=');
readln(x);
y:=sqrt(x);
writeln(x,x:5:2);
y:=sqr(x);
writeln(x,x:5:2);
readln;
end.
не ручаюсь за о что синтактсис точный, вот это вот надо примерно, пытаюсь найти аналог всего что есть в Паскале в Си
Неизвестный
24.08.2008, 16:23
общий
Зачем Вы три раза один и тот же вопрос задаете? Будьте внимательнее
Неизвестный
24.08.2008, 16:52
общий
я извеняюсь, браузер видимо сглючил, отправлял один раз, или может тут система, она ведь вроде не пропусткает идинтичные вопросы по нескольку раз
Неизвестный
24.08.2008, 17:26
общий
Нет, все пропускает. Это я так отметил ...
Неизвестный
24.08.2008, 17:31
общий
не понял, раньше ведь не пропускал, до модернизации сайта, а что вы отметили?)
Неизвестный
24.08.2008, 17:40
общий
Сам видишь Не зацикливайся на этом - лучше спрашивай
давно
Старший Модератор
17042
808
24.08.2008, 20:50
общий
это ответ
Здравствуйте, Tribak!
Привожу тексты программ (см. приложение) как на "чистом" Си, так и на C++. Можно видеть, что ввод - вывод стредствами C++ проще, чем Си.
По пунктам.
Программа на C / C++ обычно начинается директивой препроцессора #include, приблизительно соответствующей uses в Паскале. В данном случае мы подключаем заголовочные файлы ввода-вывода (stdio.h для C и iostream.h для C++), а также math.h, в котором содержится объявление функции извлечения квадратного корня sqrt
В главной функции программы main (приблизительно соответствует begin - end Паскаля) объявляем переменные для хранения чисел с плавающей точкой (тип float) x и y. Идентификатором этих чисел в функциях printf и scanf Си является "%f". В C++ стандартные числа можно просто передавать в поток вывода / брать из потока с помощью объектов cin и cout.
Если Вы работаете в командной строке, то необходимости в getch() (приблизительно соответствует readln Паскаля) нет, но при желании можете раскомментировать строки #include <conio.h> и getch() - этот фрагмент кода работает в компиляторах фирмы Borland, включая Turbo C.

Приложение:
На языке Си:

#include <stdio.h>
#include <math.h>
//#include <conio.h>
//--------------------------------------------------------
int main()
{
float x, y;
printf("x = ");
scanf("%f", &x);
y = sqrt(x);
printf("y = %f \n", y);
y = x * x;
printf("y = %f \n", y);
//getch();
return 0;
}

На языке C++:

#include <math.h>
//#include <conio.h>
//--------------------------------------------------------
int main()
{
float x, y;
cout << "x = ";
cin >> x;
y = sqrt(x);
cout << "y = " << y << endl;
y = x * x;
cout << "y = " << y << endl;
//getch();
return 0;
}
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Форма ответа