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

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

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

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

05.06.2011, 14:02. Просмотров 446. Ответов 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;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 14:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка вещественных чисел (C++):

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

Среди 5 вещественных чисел найти количество чисел, принадлежащих отрезку от -5 до 7 - C++
Написать программу которая среди 5 вещественных чисел находит кол-во чисел принадлежащих отрезку от -5 до 7

Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20 - C++
Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20. Добавлено через 53 секунды...

Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20. - C++
Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20.

Дано n вещественных чисел, которые вводятся с клавиатуры. Вычислить сумму чисел, кратных 3 - C++
Помогите, пожалуйста. Дано n вещественных чисел, которые вводятся с клавиатуры. Вычислить сумму чисел, кратных 3.

Ввести целое число и набор из вещественных чисел, вывести сумму и произведение чисел из набора - C++
ввести целое число N (больше 0) и набор из N вещественных чисел вывести сумму и произведение чисел из данного набора

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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(...)
1
iama
1250 / 975 / 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 << "После запятой - ноль";
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2011, 14:10
Привет! Вот еще темы с ответами:

В последовательности вещественных чисел подсчитать произведение чисел, кратных 3 - C++
В последовательности вещественных чисел подсчитать произведение чисел, кратных 3.

Одномерный массив (Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах) - C++
Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах. Обьясните что делать?

Вывод чисел, стоящих на четных местах, в десятичной с.с., а чисел, стоящие на нечетных местах, как вещественных с одним знаком после запятой - C++
В файле a.txt задано 10 целых чисел в восьмеричной системе счисления. Выведите числа, стоящие на четных местах в десятичной системе...

Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел - C++
Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел больших исходных на два порядка. Напечатать массивы в два...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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