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

Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
lady_koshe4ka
-3 / 0 / 0
Регистрация: 30.06.2011
Сообщений: 9
30.06.2011, 18:01     Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) #1
Дан текстовый файл, состоящий из одной или нескольких строк. Каждая строка файла содержит числа, разделенные пробелами. Найти количество положительных чисел и их среднее арифметическое и вывести на экран. Затем удалить первую строку с минимальным количеством чисел в строке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2011, 18:01     Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С)
Посмотрите здесь:

Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе C++
C++ Дан текст, содержащий целые числа. Вывести на экран количество чисел в нем
C++ Дан текстовый файл. Удалить из файла числа, кратные 3
дан входной текстовый файл. Вывести в выходной файл строку с максимальным количеством слов C++
дан текстовый файл.определить количество нечетных чисел и записать их в др текст файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
30.06.2011, 19:26     Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) #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
38
39
40
41
42
43
44
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
int main(int argc, char* argv[])
{
 
     char   line[1024];
     char*  str;
     int    cnt = 0, sum = 0,
            tmp = sizeof(line);
     long   len = 0L;
 
     FILE* fp = fopen("num.txt", "r" );
 
     while( ! feof(fp) ) {
         line[0] = '\0';
         fgets(line, sizeof(line), fp);
         if(strlen(line) < tmp) {
             tmp = strlen(line);
             len = ftell(fp);
         }
         for(str = strtok(line, " \t\n\r"); str; str = strtok(NULL, " \t\n\r")) {
              if( atoi(str) > -1 ) {
                 sum    += atoi(str);
                 cnt++;
              }
         }
     }
     printf("elapsed = %.1f\n", (float) sum / cnt);
 
     fseek(fp, 0L, SEEK_SET);
     while( ! feof(fp) ) {
         line[0] = '\0';
         fgets(line, sizeof(line), fp);
         if(ftell(fp) != len)
             printf(line);
     }
     fclose(fp);
 
     system("pause");
     return 0;
}
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
30.06.2011, 19:56     Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) #3
lady_koshe4ka,

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
 
#define INPUT_FILENAME "input.txt"
#define MAX_STRING_SIZE 64
 
int main()
{
    char nums_string[MAX_STRING_SIZE];
    FILE* input;
    char* token;
    int nums_positive = 0, sum_positive = 0;
    int number;
 
    if ((input = fopen(INPUT_FILENAME, "r")) == NULL)
    {
        fprintf(stderr, "Can't open file \"%s\"", INPUT_FILENAME);
        _getch();
        _exit(EXIT_FAILURE);
    }
 
    while (fgets(nums_string, MAX_STRING_SIZE, input))
    {
        token = strtok(nums_string, " \n");
        while (token != NULL)
        {
            number = atoi(token);
            if (number > 0)
            {
                ++nums_positive;
                sum_positive += number;
            }
 
            token = strtok(NULL, " \n");
        }
    }
 
    printf("Average is: %.2f\n", (float) sum_positive / nums_positive);
    printf("Number of positive: %d", nums_positive);
 
    return 0;
}
С удалением строки проблем возникнуть не должно..
lady_koshe4ka
-3 / 0 / 0
Регистрация: 30.06.2011
Сообщений: 9
30.06.2011, 21:31  [ТС]     Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) #4
надо обратно в файл..только я не поняла,мне еще один создавать или не надо...
Na4inaiyshii
0 / 0 / 0
Регистрация: 14.05.2013
Сообщений: 7
28.12.2013, 01:54     Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) #5
прокоментируйте пожааалуйстаа каждую строку если не тяжело
Yandex
Объявления
28.12.2013, 01:54     Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С)
Ответ Создать тему
Опции темы

Текущее время: 13:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru