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

Лабораторные работы по информатике. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ интеграл http://www.cyberforum.ru/cpp-beginners/thread207230.html
Подскажите пожалуйста как написать прогу для решения интегралов.
C++ Обработка текстового файла С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки теста не должна превышать 70 символов) Реализовать программу, которая: -... http://www.cyberforum.ru/cpp-beginners/thread207216.html
C++ Матрицы!!!
Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое соседей соответствующего элемента исходной матрицы. Построить результат...
С++ по итерационным циклам C++
Здравствуйте !) подскажите пожалуйста , как в задачке :Дано натуральное число n. Найти сумму цифр числа, находящихся на четных позициях (старшая цифра числа находится на первой позиции). ...
C++ Многопоточность http://www.cyberforum.ru/cpp-beginners/thread207212.html
Доброго времени суток:) В инсте препод задала 2 задачи: 1) Задача о обедающих философах 2) Задача о спящем брадобрее и сказала пройти материал самостоятельно, а именно Потоки ( thread ),...
C++ Вывести элементы K-й строки данной матрицы вот условие помогите пожалуйста Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Вывести элементы K-й строки данной матрицы. надо сделать на C++ Добавлено через 3 часа 44 минуты... подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт CЭксперт С++
9633 / 5581 / 948
Регистрация: 25.07.2009
Сообщений: 10,715
13.12.2010, 01:35
4
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
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
 
typedef struct STUDENT {
    int id;
    char * name;
    char * address;
    char * specialty;
} student_t;
 
int name_asc_cmp(const void * a, const void * b){
    return strcmp(((student_t*)a)->name, ((student_t*)b)->name);
}
 
char * win2dos(const char * str){
    static char buf[BUFSIZ];
    CharToOemA(str, buf);
    return buf;
}
 
char * dos2win(const char * str){
    static char buf[BUFSIZ];
    OemToCharA(str, buf);
    return buf;
}
 
int main(void){
    student_t * students;
    int cnt, i;
    char ch, buf[BUFSIZ], *p;
    
    students = NULL;
    cnt = 0;
    
    while ( printf("\n%d %s > ", cnt, win2dos("студентов в базе\n1 - добавить нового, 0 - закончить")) && scanf("%c%*c", &ch) == 1 && ch == '1' ){
        if ( ( students = (student_t*)realloc(students, sizeof(student_t) * (cnt + 1)) ) == NULL ){
            perror("realloc");
            exit(1);
        }
        printf("\n%s %d\n", win2dos("Студент номер"), ( students[cnt].id = cnt + 1 ));
        printf("%s: ", win2dos("ФИО"));
        scanf("%1024[^\n]%*c", buf);
        if ( ( students[cnt].name = strdup(dos2win(buf)) ) == NULL ){
            perror("strdup");
            exit(1);
        }
        printf("%s: ", win2dos("Адрес"));
        scanf("%1024[^\n]%*c", buf);
        if ( ( students[cnt].address = strdup(dos2win(buf)) ) == NULL ){
            perror("strdup");
            exit(1);
        }
        printf("%s: ", win2dos("Специальность"));
        scanf("%1024[^\n]%*c", buf);
        if ( ( students[cnt].specialty = strdup(dos2win(buf)) ) == NULL ){
            perror("strdup");
            exit(1);
        }
        ++cnt;
    }
    
    qsort(students, cnt, sizeof(student_t), name_asc_cmp);
    printf("%s:\n", win2dos("Сортированный список"));
    printf("#    %-25s", win2dos("ФИО"));
    printf("%-30s", win2dos("Адрес"));
    printf("%s\n", win2dos("Специальность"));
    printf("---------------------------------------------------------------------------\n");
    for ( i = 0; i < cnt; ++i ){
        printf("%-5d%-25s", students[i].id, win2dos(students[i].name));
        printf("%-30s", win2dos(students[i].address));
        printf("%s\n", win2dos(students[i].specialty));
    }
    printf("---------------------------------------------------------------------------\n");
    
    for ( i = 0; i < cnt; ++i ){
        free(students[i].name);
        free(students[i].address);
        free(students[i].specialty);
    }
    free(students);
    
    exit(0);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru