Вывести дробную часть заданного положительного вещественного числа А.
Входные данные:
Во входном потоке заданно единственное вещественное число А (A <= 30000).
Пример входного файла (input.txt):
123.123
Выходные данные:
В выходной поток вывести единственное вещественное число с точностью три знака после запятой.
Пример выходного файла (output.txt):
0.123
Помогите плиз! Задачу нужно решить в С/С++
Другие языки программирования и технологии
Дробная часть числа (Задачу нужно решить в С/С++)
#include <iostream>
#include <fstream>
using namespace std;
void ExeFile(char*& n) { int j,k=0; for(;n[k];k++); for(k--;k>=0;--k) if(n[k]=='\\') break; for(j=0;n[++k];n[j++]=n[k]); n[j]=0; }
int main(int mn,char* nm[])
{
int j,r,k;
char *p;
ExeFile(nm[0]);
if(mn!=3) cerr << nm[0] << " input.txt output.txt\n",exit(1);
ifstream in(nm[1],ios::binary); if(!in) cerr << "File \"" << nm[1] << "\" not open!\n",exit(1);
in.seekg(0,ios::end); r=in.tellg(); in.seekg(0,ios::beg);
p=new char[r+1]; if(!p) cerr << "Mo memory!\n",exit(1);
in.read(p,r); in.close(); p[r]=0;
for(k=0;p[k]!='.'&&p[k];k++);
for(--k,p[j=0]='0',j++;p[k++];p[j++]=p[k]);
ofstream ou(nm[2],ios::binary); if(!ou) cerr << "File \"" << nm[2] << "\" not create!\n",exit(1);
ou.write(p,--j);
ou.close();
delete [] p;
return 0;
}
С округлением:
#include <iostream>
#include <fstream>
using namespace std;
void ExeFile(char*& n) { int j,k=0; for(;n[k];k++); for(k--;k>=0;--k) if(n[k]=='\\') break; for(j=0;n[++k];n[j++]=n[k]); n[j]=0; }
int main(int mn,char* nm[])
{
int j,r,k;
char *p,h[5];
ExeFile(nm[0]);
if(mn!=3) cerr << nm[0] << " input.txt output.txt\n",exit(1);
ifstream in(nm[1],ios::binary); if(!in) cerr << "File \"" << nm[1] << "\" not open!\n",exit(1);
in.seekg(0,ios::end); r=in.tellg(); in.seekg(0,ios::beg);
p=new char[r+1]; if(!p) cerr << "Mo memory!\n",exit(1);
in.read(p,r); in.close();
for(k=0;p[k]!='.'&&p[k];k++);
for(j=0,r=k;p[r]&&j < 4;h[j++]=p[++r]); h[4]=0;
for(;p[r]&&isdigit(p[r]);r++);
int t=((atoi(h)+5)/10)00;
p[0]='0',p[1]='.',p[2]=0x30+t/100,p[3]=0x30+(t/10),p[4]=0x30+t;
for(j=5;p[r];p[j++]=p[r++]);
ofstream ou(nm[2],ios::binary); if(!ou) cerr << "File \"" << nm[2] << "\" not create!\n",exit(1);
ou.write(p,j);
ou.close();
delete [] p;
return 0;
}
#include <fstream>
using namespace std;
void ExeFile(char*& n) { int j,k=0; for(;n[k];k++); for(k--;k>=0;--k) if(n[k]=='\\') break; for(j=0;n[++k];n[j++]=n[k]); n[j]=0; }
int main(int mn,char* nm[])
{
int j,r,k;
char *p;
ExeFile(nm[0]);
if(mn!=3) cerr << nm[0] << " input.txt output.txt\n",exit(1);
ifstream in(nm[1],ios::binary); if(!in) cerr << "File \"" << nm[1] << "\" not open!\n",exit(1);
in.seekg(0,ios::end); r=in.tellg(); in.seekg(0,ios::beg);
p=new char[r+1]; if(!p) cerr << "Mo memory!\n",exit(1);
in.read(p,r); in.close(); p[r]=0;
for(k=0;p[k]!='.'&&p[k];k++);
for(--k,p[j=0]='0',j++;p[k++];p[j++]=p[k]);
ofstream ou(nm[2],ios::binary); if(!ou) cerr << "File \"" << nm[2] << "\" not create!\n",exit(1);
ou.write(p,--j);
ou.close();
delete [] p;
return 0;
}
С округлением:
#include <iostream>
#include <fstream>
using namespace std;
void ExeFile(char*& n) { int j,k=0; for(;n[k];k++); for(k--;k>=0;--k) if(n[k]=='\\') break; for(j=0;n[++k];n[j++]=n[k]); n[j]=0; }
int main(int mn,char* nm[])
{
int j,r,k;
char *p,h[5];
ExeFile(nm[0]);
if(mn!=3) cerr << nm[0] << " input.txt output.txt\n",exit(1);
ifstream in(nm[1],ios::binary); if(!in) cerr << "File \"" << nm[1] << "\" not open!\n",exit(1);
in.seekg(0,ios::end); r=in.tellg(); in.seekg(0,ios::beg);
p=new char[r+1]; if(!p) cerr << "Mo memory!\n",exit(1);
in.read(p,r); in.close();
for(k=0;p[k]!='.'&&p[k];k++);
for(j=0,r=k;p[r]&&j < 4;h[j++]=p[++r]); h[4]=0;
for(;p[r]&&isdigit(p[r]);r++);
int t=((atoi(h)+5)/10)00;
p[0]='0',p[1]='.',p[2]=0x30+t/100,p[3]=0x30+(t/10),p[4]=0x30+t;
for(j=5;p[r];p[j++]=p[r++]);
ofstream ou(nm[2],ios::binary); if(!ou) cerr << "File \"" << nm[2] << "\" not create!\n",exit(1);
ou.write(p,j);
ou.close();
delete [] p;
return 0;
}
#include<fstream>
using namespace std;
int main(){
ifstream infile("input.txt");
ofstream outfile("output.txt");
double a; infile>> a; outfile<< a-(int)a;}
using namespace std;
int main(){
ifstream infile("input.txt");
ofstream outfile("output.txt");
double a; infile>> a; outfile<< a-(int)a;}
оператор %
Дмитрий Самсонов
Как? Полное решение?
используй функцию модф ()
Дмитрий Самсонов
не умею подскажите в самом решении. Плиз
Похожие вопросы
- Бывало ли у вас такое: вы не знаете языка программирования, а задачу нужно решить до завтра? просто глаза на лоб лезут..
- Что такое дробные HEX числа?
- PASCAL. В чем отличие процедур от функций. И любую ли задачу можно решить с помощью функции?
- Нужно решить задачу в Паскале.
- За умеренную плату нужно решить 4 задачи на Лазарусе!!!
- Помогите пожалуйста, очень срочно нужно решить задачу по информатике. Сама не понимаю, есть ли вообще решение.
- Нужно решить задачу на языке программирования С++
- Как перевести дробное десятичное число в двоичное. С плавающей запятой.
- Какие задачи должен решить начинающий програмист? (изучающий еще только)
- Как перевести дробное десятичное число в двоичную систему? по шагам пожалуйста 194,5?
int t=((atoi(h)+5)/10) % 1000;
p[0]='0',p[1]='.',p[2]=0x30+t/100,p[3]=0x30+(t/10) % 10,p[4]=0x30+t % 10;