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

Файлы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Матрица. Удалить нечетные столбцы. http://www.cyberforum.ru/cpp-beginners/thread76678.html
Помогите, пожалуйста, с задачей. Нужно удалить из матрицы нечетные столбцы и вывести полученную матрицу на экран. Количество строк и столбцов желательно ограничить дифайном в 100 (по желанию...
C++ Действия над матрицами Помогите выполнить действия над матрицами в С++ 2(А+В)(2В-А), где 3 4 5 А= 5 6 2 -1 3 1 -1 0 5 В = 0 1 3 2 -2 4 http://www.cyberforum.ru/cpp-beginners/thread76674.html
C++ Контрольная по С
Очень большая просьба помочь.... Описание структуры: дата и время телепрограммы (дд.мм.гггг чч:мм), название (строка 30 символов), номер канала (целое число), жанр (кино, научная программа,...
Упорядочить строки матрицы по возрастанию количества положительных элементов в одной строке C++
Дана целочисленная матрица n*m, n,m<=10.Упорядочить(переставить) строки матрицы по возрастанию количества положительных элементов в одной строке.Затем в каждой найти произведение элементов,сумма...
C++ С использованием текстовых файлов http://www.cyberforum.ru/cpp-beginners/thread76663.html
помогите первокурснице..... Файл содержит целые числа. Вычислить сумму значений из файла, в двоичном представлении которых K разрядов установлено в единицу.
C++ Обработка текста и вывод в отдельный файл Добрый день! Есть задание: В текстовом файле имеется словарь (каждое слово на отдельной строке). Найти в нем слова, которые могут быть полностью составлены из двух и более других слов. Найденные... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9630 / 5578 / 948
Регистрация: 25.07.2009
Сообщений: 10,712
19.12.2009, 22:17
Цитата Сообщение от lera8 Посмотреть сообщение
Дан файл, содержащий вещественные числа (тип double). Определить сумму чисел,
меньших среднего значения всех чисел в файле.
А сам "файл, содержащий вещественные числа" дадут, или тоже сделать надо?
на всякий случай вот Вам
файлосоздавалка
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
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
 
/*
*   создавалка двоичного файла, содержащие числа типа double 
*/
 
int main(int argc, char **argv){
    double d;
    FILE *f;
    char buf[BUFSIZ], *p, *file_name;
    
    if ( argc > 1 )
        file_name = argv[1];
    else {
        printf("Name for output file: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        if ( p = strrchr(buf, '\n') )
            *p = '\0';
        if ( !*buf ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        file_name = buf;
    }
    
    if ( ( f = fopen(file_name, "wb") ) == NULL ){
        perror("Can't open output file!\n");
        exit(1);
    }
    
    while ( 1 ){
        printf("Double value or q for quit: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){
            perror("Can't get value!\n");
            exit(1);
        }
        if ( *buf == 'q' )
            break;
        
        d = strtod(buf, NULL);
        if ( errno == ERANGE ){
            printf("Bad value!\n");
            continue;
        }
        
        if ( fwrite(&d, sizeof(double), 1, f) != 1 ){
            perror("Can't write data to file!\n");
            exit(1);
        }
        printf("Saved to file.\n");
    }
    fclose(f);
    exit(0);
}
а вот
читалка и считалка
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/*
*   читалка двоичного файла и считалка суммы значений, меньших среднего арифметического 
*/
 
int main(int argc, char **argv){
    double *arr, average, sum;
    FILE *f;
    char buf[BUFSIZ], *p, *file_name;
    size_t count, i;
    long pos;
    
    if ( argc > 1 )
        file_name = argv[1];
    else {
        printf("Name for input file: ");
        if ( !fgets(buf, BUFSIZ, stdin) ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        if ( p = strrchr(buf, '\n') )
            *p = '\0';
        if ( !*buf ){
            perror("Can't get name for file!\n");
            exit(1);
        }
        file_name = buf;
    }
    
    if ( ( f = fopen(file_name, "rb") ) == NULL ){
        perror("Can't open input file!\n");
        exit(1);
    }
    
    fseek(f, 0, SEEK_END);
    pos = ftell(f);
    rewind(f);
    if ( pos % sizeof(double) ){
        fprintf(stderr, "File corrupt!\n");
        exit(1);
    }
    count = pos / sizeof(double);
    if ( !count ){
        fprintf(stderr, "No data in file!\n");
        exit(1);
    }
    
    if ( ( arr = (double*)calloc(count, sizeof(double)) ) == NULL ){
        perror("Bad memory!\n");
        exit(1);
    }
    if ( fread(arr, sizeof(double), count, f) != count ){
        perror("Can't read file!\n");
        exit(1);
    }
    fclose(f);
    
    for ( sum = 0.0, i = 0; i < count; ++i )
        sum += arr[i];
    average = sum / (double)count;
    for ( sum = 0.0, i = 0; i < count; ++i )
        if ( arr[i] < average )
            sum += arr[i];
    
    printf("All %d values:\n", count);
    for ( i = 0; i < count; ++i )
        printf( ( i < count - 1 ) ? "%.2f " : "%.2f\n", arr[i]);
    printf("Average value: %.2f\n", average);
    printf("Sum of elements less than average is: %.2f\n", sum);
    
    free(arr);
    exit(0);
}


Не по теме:

Цитата Сообщение от odip Посмотреть сообщение
Спасать вижу смысл только тех, кто сам прилагает усилия.
Ну ладно Вам, барышня всё-таки...

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