Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
#1

замена отрицательных чисел

17.12.2011, 18:22. Просмотров 940. Ответов 16
Метки нет (Все метки)

Добрый вечер! Пожалуйста помогите с задачей: во входном файле лежит строка, состоящая из букв, чисел и символов. Ее нужно прочесть и там где в строке начинается число, считать его и проверить положительное оно или отрицательное (отрицательным оно будет считаться если перед ним без проблов стоит '-', если с пробелом стоит '-', то значит это просто тире). Нужно, чтобы программа в выходной файл выводила эту же строку, в которой вместо отрицательных чисел стоит положительное число. Нужно воспользоваться библиотекой math.h и функцией fabs.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2011, 18:22
Ответы с готовыми решениями:

Замена отрицательных элементов в массиве
Народ, кто может, помогите с задачей - завтра сдавать Заменить все...

Замена отрицательных элементов массива
Доброго времени суток, недавно начал изучение с++ и так как учусь на заОчке не...

[C++] Замена отрицательных элементов их модулями
Задание: Разработать подпрограмму, заменяющую все отрицательные элементы...

[C++] Замена отрицательных элементов их модулями
Здравствуйте, программисты:) прошу вас помощь с программой. Разработать...

Замена отрицательных значений в файле нулями
Написал код, для замены отрицательных значений в файле нулями...не могу понять...

16
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 19:20 #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
32
33
34
35
36
37
#include <iostream>
#include <stdlib>
using namespace std;
int main(){
   FILE * fi, * fo;
 
   if ((fi = fopen("test.txt", "rt")) == NULL) {
      cout << "Cannot open input file.\n";
      system("pause");
      return 1;
   }
   if ((fo = fopen("test_out.txt","wt")) == NULL) {
      cout << "Cannot create output file.\n";
      system("pause");
      return 1;
   }
   char n;
   fscanf( fi, "%c", &n );
   while( !feof(fi) ) {
     if ((n == '-')){
        fscanf(fi, "%c",&n);
        if (isdigit(n))
            fprintf( fo, "%c", n );
        else
            fprintf(fo,"%c%c",'-',n);
        fscanf( fi, "%c", &n );
     }else{
        fprintf( fo, "%c", n );
        fscanf( fi, "%c", &n );
     }
   }
   fclose(fi);
   fclose(fo);
 
   system("pause");
   return 0;
}
Пожалуйста.
1
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 19:41  [ТС] #3
Спасибо большое, только я забыл сказать что он нужен на С)
0
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 20:17  [ТС] #4
ошибка в строке после объявления библиотек using namespace std;
0
Миниатюры
замена отрицательных чисел  
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
17.12.2011, 20:23 #5
bacekk,
C++
1
#include <stdlib.h>
Добавлено через 42 секунды
А лучше
C++
1
#include <cstdlib>
1
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 20:24 #6
А так?

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
32
33
34
35
36
37
38
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
 
int main(void){
   FILE * fi, * fo;
 
   if ((fi = fopen("test.txt", "rt")) == NULL) {
      puts("Cannot open input file.\n");
      system("pause");
      return 1;
   }
   if ((fo = fopen("test_out.txt","wt")) == NULL) {
      puts("Cannot create output file.\n");
      system("pause");
      return 1;
   }
   char n;
   fscanf( fi, "%c", &n );
   while( !feof(fi) ) {
     if ((n == '-')){
        fscanf(fi, "%c",&n);
        if (isdigit(n))
            fprintf( fo, "%c", n );
        else
            fprintf(fo,"%c%c",'-',n);
        fscanf( fi, "%c", &n );
     }else{
        fprintf( fo, "%c", n );
        fscanf( fi, "%c", &n );
     }
   }
   fclose(fi);
   fclose(fo);
 
   system("pause");
   return 0;
}
1
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 20:38  [ТС] #7
теперь вот это пишет. Проблема еще в том, что нужна библиотека math.h и с помощью fabs убирать минус перед числом, как это сделать не представляю...
0
Миниатюры
замена отрицательных чисел  
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 20:48 #8
system("pause") стрите (36 строчка)
1
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 21:02  [ТС] #9
system("pause") стер на 10, 15 и 36 строчке, запускается, но cannot open input file, хотя я прописал все правильно, шож такое
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
17.12.2011, 21:12 #10
C
1
2
3
4
#include <cmath>
 
double x;
x = fabs ( x ) ;
1
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 21:49  [ТС] #11
супер, тока применительно к заданию))

Добавлено через 28 минут
не знаете почему пишет Cannot open input file, хотя все прописано правильно и файлы созданы?
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
17.12.2011, 21:55 #12
Цитата Сообщение от bacekk Посмотреть сообщение
не знаете почему пишет Cannot open input file, хотя все прописано правильно и файлы созданы?
Не найден такой файл
0
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 22:01 #13
Цитата Сообщение от bacekk Посмотреть сообщение
во входном файле лежит строка
создайте в папке с програмой файл test.txt с текстом который нужно заменить..Извиняюсь что не реализовал выбор файла, но вы с етим думаю справитесь )

п.с. выходной файл увидите в той же папке. Ждем результатов =)
1
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 22:19  [ТС] #14
я ведь вроде все так сделал?
0
Миниатюры
замена отрицательных чисел   замена отрицательных чисел  
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
17.12.2011, 22:26 #15
bacekk, я у вас в папке .exe файла не видел
напишите полный путь к текстовому файлу, только помните, что обратный слэш удваивается.
1
bacekk
2 / 2 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 22:58  [ТС] #16
Нашел свои тупейшие ошибки! Спасибо огромное за помощь! Жаль только без fabs программа реализованна, но все равно очень вам признателен!
0
Dr.Urban
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 23:03 #17
Я чтото не понял как можно реализовать с помощью fabs - может кто подскажет?
0
17.12.2011, 23:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2011, 23:03

Замена отрицательных элементов первой строчки на 0
Дана целочисленная матрица размера 5х5. Заменить в данной матрице все...

Замена отрицательных элементов массива на их индексы
Помогите написать код. Дано двумерный массив целых чисел. Все отрицательные...

Замена отрицательных эл-ов матрицы нулями...что не так?
Вот код! #include&lt;iostream&gt; using namespace std; int main () {...


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

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

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