Автор Тема: Просто Си.  (Прочитано 1147 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hitokiri_Rid

  • VIP
  • Ветеран
  • *****
  • Сообщений: 3422
  • Пол: Мужской
    • Просмотр профиля
Просто Си.
« : 17.02.11, 11:47:28 »
В общем вот код.
Гойоворят Си++, а надо простой Си.
По мне так он и есть и, видимо, я чего-то не понемаю.
Может кто переделать?
#include<iostream.h>
#include <conio.h>
#include <stdio.h>
#define ITNUM 4
float Sqroot(float x)
{  int sp=0,i,inv=0;
  float a,b;
  cout<<"Введите число, из которого хотите извлечь корень:";
  cin>>x;
  cout<<endl;
  if(x<=0.F) return(0.F);
  if(x<1.F) {x=1.F/x;inv=1;}
  while(x>16.F) {sp++;x/=16.F;}
  a=2.F;
  for(i=ITNUM;i>0;i--)
  {    b=x/a; a+=b; a*=0.5F;  }
  while(sp>0) {sp--;a*=4.F;}
  if(inv) a=1.F/a;
  cout<<"Результат= ";
  return(a);
  cout<<endl;}

void main()
{   clrscr();
      float y, z;
     z=Sqroot(y);
     cout<<z;
getch();    }
Fallit et attollit vires in milite causa.


bear

  • Гость
Re: Просто Си.
« Ответ #1 : 17.02.11, 11:50:48 »
cout переделай в printf и будет обычный си :)
и cin в чтонить типа fgets
iostream по идее тоже можно убрать

все остальное можно оставить как есть

bear

  • Гость
Re: Просто Си.
« Ответ #2 : 17.02.11, 12:04:06 »
както так, не проверял, сам компили и дебаж
#include <conio.h>
#include <stdio.h>
#define ITNUM 4
float Sqroot(float x)
{  int sp=0,i,inv=0;
  float a,b;
  printf("Введите число, из которого хотите извлечь корень:");
  scanf("%s",x);
  printf ("/n");
  if(x<=0.F) return(0.F);
  if(x<1.F) {x=1.F/x;inv=1;}
  while(x>16.F) {sp++;x/=16.F;}
  a=2.F;
  for(i=ITNUM;i>0;i--)
  {    b=x/a; a+=b; a*=0.5F;  }
  while(sp>0) {sp--;a*=4.F;}
  if(inv) a=1.F/a;
  printf ("Результат= ");
  return(a);
  printf("/n");}

void main()
{   clrscr();
      float y, z;
     z=Sqroot(y);
     printf ("%f",z);
getch();    }

зыж вообще, както по индусски выглядит, ну да ладно  :bk:
« Последнее редактирование: 17.02.11, 12:23:56 от bear »