Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89

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

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

Студворк — интернет-сервис помощи студентам
Добрый вечер! Пожалуйста помогите с задачей: во входном файле лежит строка, состоящая из букв, чисел и символов. Ее нужно прочесть и там где в строке начинается число, считать его и проверить положительное оно или отрицательное (отрицательным оно будет считаться если перед ним без проблов стоит '-', если с пробелом стоит '-', то значит это просто тире). Нужно, чтобы программа в выходной файл выводила эту же строку, в которой вместо отрицательных чисел стоит положительное число. Нужно воспользоваться библиотекой math.h и функцией fabs.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.12.2011, 18:22
Ответы с готовыми решениями:

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

Замена отрицательных чисел нулями. Ассемблер
В обычном ассемблере CMD создать программу. Задан массив А. A DB 1,1,-2,-4,6 DB 2,-5,2,-2,5 DB 3,-3,-3,4,4 DB 5,-5,6,-7,7 В...

[tasm] Замена отрицательных чисел нулями
Что нужно исправить, чтобы в ответе отрицательные числа заменял не знаками (.,+-), а нулями. А также, чтобы ответ выводил в виде матрицы? ...

16
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 19:20
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
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 19:41  [ТС]
Спасибо большое, только я забыл сказать что он нужен на С)
0
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 20:17  [ТС]
ошибка в строке после объявления библиотек using namespace std;
Миниатюры
замена отрицательных чисел  
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.12.2011, 20:23
bacekk,
C++
1
#include <stdlib.h>
Добавлено через 42 секунды
А лучше
C++
1
#include <cstdlib>
1
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 20:24
А так?

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
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 20:38  [ТС]
теперь вот это пишет. Проблема еще в том, что нужна библиотека math.h и с помощью fabs убирать минус перед числом, как это сделать не представляю...
Миниатюры
замена отрицательных чисел  
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 20:48
system("pause") стрите (36 строчка)
1
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 21:02  [ТС]
system("pause") стер на 10, 15 и 36 строчке, запускается, но cannot open input file, хотя я прописал все правильно, шож такое
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.12.2011, 21:12
C
1
2
3
4
#include <cmath>
 
double x;
x = fabs ( x ) ;
1
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 21:49  [ТС]
супер, тока применительно к заданию))

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

п.с. выходной файл увидите в той же папке. Ждем результатов =)
1
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 22:19  [ТС]
я ведь вроде все так сделал?
Миниатюры
замена отрицательных чисел   замена отрицательных чисел  
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
17.12.2011, 22:26
bacekk, я у вас в папке .exe файла не видел
напишите полный путь к текстовому файлу, только помните, что обратный слэш удваивается.
1
3 / 3 / 0
Регистрация: 30.11.2010
Сообщений: 89
17.12.2011, 22:58  [ТС]
Нашел свои тупейшие ошибки! Спасибо огромное за помощь! Жаль только без fabs программа реализованна, но все равно очень вам признателен!
0
63 / 58 / 14
Регистрация: 14.12.2011
Сообщений: 193
17.12.2011, 23:03
Я чтото не понял как можно реализовать с помощью fabs - может кто подскажет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2011, 23:03
Помогаю со студенческими работами здесь

Замена отрицательных чисел... Проверка программы
Условие: Заменить все отрицательные элементы массива нулями Программа: Program Pr5; Var A:array of integer; I,S:integer; begin ...

Замена отрицательных чисел и 0 на значения Nan в матрице
Здравствуйте! У меня есть большая матрица значений температуры (3200x5923), пересчитанной из Кельвинов в Цельсии. Для дальнейших расчетов...

Посчитать количество отрицательных чисел в каждой строке и вывести строку с максимальным количеством отрицательных чисел на экран.
Прошу помощи! Проблема возникла в следующем блоке программы. По условию задачи необходимо сгенерировать массив, посчитать количество...

Найти сумму всех элементов массива, количество положительных и отрицательных чисел и среднеарифметическое отрицательных чисел
заранее всем спасибо буду признателен за любую помощь

Если в массиве больше отрицательных чисел, все положительные числа заменить суммой отрицательных
Задан одномерный массив P(N) (N&lt;=60). Если в нем больше отрицательных чисел, все положительные числа заменить суммой отрицательных,...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru