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

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

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

Обработка вещественных чисел - C++

05.06.2011, 14:02. Просмотров 433. Ответов 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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main()
{
char A[100],*p;
float i;
FILE *f1=fopen("A.txt","r");
FILE *f2=fopen("B.txt","w+");
if (f1==0)
{
        perror("error");
        system("pause");
        return 1;
}
fscanf(f1,"%f",&A);
p=strtok(A," ");
do
{
i=atof(p);
if (i-=floor(i)!=0)
fprintf(f2,"%f",i);
}
while (p);
 
        fclose(f1);
        fclose(f2);
        system("pause");
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 14:02     Обработка вещественных чисел
Посмотрите здесь:

Обработка двумерного массива вещественных чисел - C++
Очень нужна помощь, помогите с этим заданием. Видел уже решение подобного задания, только он написан на Паскале, а мне нужно на С++. ...

Представление вещественных чисел!!!!С++ - C++
Товарищи помогите,завтра сдавать задачу,а мозг взорвался(((как записать вещественные числа с произвольной точностью???Заранее благодарю!!

random вещественных чисел - C++
как сгенерировать случайное ВЕЩЕСТВЕННОЕ число в промежутке от 0 до 1 p=random(0,1);

Деление вещественных чисел - C++
Есть float a,b,rez; Делю 4 на 2 = 2 все нормально. 2 на 4 ответ 0 Как правильно делить вещественные числа в с++?

Сравнение вещественных чисел - C++
Привет, ребят! Нужна ваша мудрость. На днях думал о реализации класса complex&lt;class scalar&gt; из std и о реализации класса 3D-точек,...

Класс вещественных чисел - C++
Всем привет. Требуется выполнить задание, которое на фото (написать класс вещественных чисел). Код, который я написал смотреть ниже. Вот...

два файла вещественных чисел - C++
Даны два файла вещественных чисел, в которых данные отсортированы по неубыванию. Сформируйте выходной файл из чисел первого и второго...

Перевод вещественных чисел в двоичные - C++
Помогите пожалуйста! Вот , например есть число 99.57 сначала переводим в двоичный код целую часть , то есть 99. Получается 0,1100011(...

Среднее арифметическое вещественных чисел на С++ - C++
Даны 10 вещественных чисел. Найти их средне арифмитическое

Представление отрицательных вещественных чисел - C++
мм.. Как представляются отрицательные вещественные числа в двоичном виде? например, -1.3 (точность 3 знака) Я правильно...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
05.06.2011, 14:08     Обработка вещественных чисел #2
Цитата Сообщение от m9co038 Посмотреть сообщение
fscanf(f1,"%f",&A);
1) fgets()

Цитата Сообщение от m9co038 Посмотреть сообщение
} while (p);
2)перед этим p = strtok(NULL, " "); забыл


Цитата Сообщение от m9co038 Посмотреть сообщение
i=atof(p); if (i-=floor(i)!=0)
3) есть такая функция modf() - возвращает дробную часть

Цитата Сообщение от m9co038 Посмотреть сообщение
fprintf(f2,"%f",i);
4) пробел забыл между числами. я так вижу ты пишешь в файл все подряд, без сохранения '\n'.
тогда нет смысла вообще в fgets() , а можно просто while (!feof(...)) fscanf(...)
iama
1249 / 974 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
05.06.2011, 14:10     Обработка вещественных чисел #3
Цитата Сообщение от m9co038 Посмотреть сообщение
содержит изображения нескольких чисел
щито?

И зачем такие сложности? Проверку, является ли дробная часть числа с плавающей запятой - нулевой, можно сделать так:
C++
1
2
3
4
5
6
7
8
9
10
#defile eps 0.0000001
 
float a;
 
//...
 
if (a - (float) ((int) a) > eps) 
  cout << "После запятой - не ноль";
else
  cout << "После запятой - ноль";
Yandex
Объявления
05.06.2011, 14:10     Обработка вещественных чисел
Ответ Создать тему
Опции темы

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