Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 21

Подсчет количества смены знака в последовательности чисел

24.06.2016, 16:47. Показов 1712. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему при наличии в файле чисел : 0 2 -4, выдает результат: count = 0 . То есть... Он возвращает мне ошибку , что в файле есть не число, там, где я делаю проверку на наличие символов ненужных в файле( я проверяла). Почему происходит такая вещь в программе? Вот если в файле будут числа: 0 2 -4 5 , то уже работает верно все). Где у меня ошибка? Вот код программы:
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
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <math.h>
 
int process(FILE* file, int* kol_pol)
{
    // если файла не существует - возвращает значение -1
    if (file == NULL) return -1;
    int a; //число в файле
    int num1, num2;
    int otr1, otr2;
    fseek(file, 0, SEEK_SET);
    // Если в файле не число - то возвращает значение -1
    while (fscanf(file, "%d", &a) != EOF)
    {
        if (fscanf(file, "%d", &a) != 1) return -1;
    }
    // если в файле все числа, то найдем количество смены знака
    // считываем число с файла и определяем , положительное ли оно
    fseek(file, 0, SEEK_SET);
    fscanf(file, "%d", &a);
    num1 = a;
    (num1 >= 0) ? (otr1 = 1) : (otr1 = -1);
    while (fscanf(file, "%d", &a) != EOF)
    {
        num2 = a;
        (num2 >= 0) ? (otr2 = 1) : (otr2 = -1);
        if (otr1*otr2 == -1)  (*kol_pol)++;
        num1 = num2;
        otr1 = otr2;
    }
    return 0;
}
 
int main(void)
{
    int kol_pol = 0;
 
    FILE *fin;
 
    // ввод из файла
    fin = fopen ( "C:/c/test.txt", "r" );
    if (fin == NULL) printf("Error");
 
    process(fin, &kol_pol);
    printf("%s %d %s", "count = ", kol_pol, "\n");
    getchar();
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2016, 16:47
Ответы с готовыми решениями:

Генерация случайных чисел от -10 до 10 и подсчет сколько в этой последовательности чисел происходило смен знака
Компьютер последовательно генерирует 100 случайных чисел в диапазоне от -10 до 10.Подсчитать сколько в этой последовательности чисел...

Подсчет количества чисел в последовательности
Дано n целых чисел, n вводится пользователем. Вывести каких чисел положительных или отрицательных больше в этой последовательности и на...

Подсчет количества чисел Фибоначчи в заданной числовой последовательности.
Дано 100 чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи и сколько чисел, первая значашая цифра в десятиричной записи...

3
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
24.06.2016, 16:57
Цитата Сообщение от zaira001002 Посмотреть сообщение
fscanf(file, "%d", &a) != EOF
http://www.cplusplus.com/refer... ?kw=fscanf
On success, the function returns the number of items of the argument list successfully filled.
А не конец файла.
В твоем случае нужно проверять через feof()
0
0 / 0 / 0
Регистрация: 02.12.2012
Сообщений: 21
24.06.2016, 17:16  [ТС]
Везде проверять через feof(), где встречается строка "пока не конец файла"?
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
24.06.2016, 19:32
Цитата Сообщение от zaira001002 Посмотреть сообщение
Везде проверять через feof(
В цикле в котором считываешь. Это должно быть его условием.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2016, 19:32
Помогаю со студенческими работами здесь

Подсчет количества чисел в последовательности, являющихся большими его соседей
Условия задачи, которые нужно написать: 1. Пусть даны последовательность чисел, которая заканчивается 0. Написать программу, которая...

Подсчет количества смен знака
Сгенерировать матрицу размерности MхN (M, N вводятся пользователем) со случайными ненулевыми значениями в пределах . Сделать проход по...

Определить частное количества чисел, меньших 10, и количества введенных чисел последовательности
Последовательно вводятся действительные положительные числа пока не будет введено отрицательное число. Определить частное количества чисел...

Подсчет смены знаков чисел, стоящих за другом
Здравствуйте, появилась небольшая проблема при написании первой программы, вот ее код: #include &quot;stdafx.h&quot; #include...

Подсчет количества смен знаков последовательности
из промежутка чисел 5, 5, 6, -3 подсчитать смены знаков (с + на -, с - на +) вот некоторые мысли: For (n) Scan a if (a &gt; 0;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru