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

Обьединение в С. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию чтобы случайным образом забивался массив http://www.cyberforum.ru/cpp-beginners/thread60260.html
Доброе время суток. Хочу на С++ написать функцию чтобы случайным образом забивался массив числами от 5 до 10, но что то не выходит. Подскажите что нужно изменить: #include <iostream> using namespace std; int randAB(int A, int B) { return A+random(B-A+1); } int main()
C++ Что обозначает этот инкремент ? znaiu chto zasmeete novichka za etot vopros no chto oznachaet podobnii increment? : int x = 5; x+=x; // eto znaiu chto oznachaet : x=x+x x=+x; // <------- A VOT ETO CHTO ?!? http://www.cyberforum.ru/cpp-beginners/thread60255.html
C++ Считывание строки из файла
Что то не врублю, как считать полностью всё содержимое файла и занести его в строку. НАпример если там будет такое: ф ыы ввв а мне надо что бы в строку занеслось ф'\n'ыы'\n'ввв
C++ подмножества
Задано натуральное число n, определить и вывести на экран (по одному разу) все подмножества множества 1 .. n с заданной суммой S (числа в каждом подмножеству повторяться не могут) Народ подскажите решение
C++ С++ не понимаю http://www.cyberforum.ru/cpp-beginners/thread60218.html
1. сумму элементов массива с нечетными номерами; 2. сумму элементов массива, расположенных между первым и последним отрицательными элементами; 3. Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями. --------------------------------------------------------------------+ Первые два сделал, не могу сделать...
C++ Диагонали массива Алгоритм нахождения диагоналей массива параллельных главной диагонали. Добавлено через 8 минут Привет всем. Я недавно начал изучать С++, остановился на двумерных массивах, не могу придумать алгоритм нахождения диагоналей массива параллельных главной диагонали (. Вообщем задача звучит так: "Дана целочисленная матрица.Определить: Максимум среди сумм диагоналей, параллельных главной диагонали... подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
01.11.2009, 01:30     Обьединение в С.
Вот
так
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define STR_LEN 255
#define MAX_PRODUCTS 100
 
typedef struct {
    int day;
    int month;
    int year;
} Date_t;
 
typedef struct {
    int cat_id; /* номер по каталогу */
    char name[STR_LEN]; /* наименование */
    double weight; /* масса */
    double price; /* цена */
    Date_t date; /* дата выпуска */
} Product_t;
 
/* сравнение дат выпуска по возрастанию */
int cmpByDateAsc ( const void *first, const void *second ) {
    Date_t a = (*(Product_t *)first).date;
    Date_t b = (*(Product_t *)second).date;
    if ( a.year == b.year ) {
        if ( a.month == b.month ){
            return (a.day - b.day);
        }
        else {
            return (a.month - b.month);
        }
    }
    else {
        return (a.year - b.year);
    }
}
 
/* сравнение дат выпуска по убыванию */
int cmpByDateDesc ( const void *first, const void *second ) {
    return cmpByDateAsc(second, first);
}
 
/* вывод содержимого структуры Product_t */
void prnProduct(Product_t p){
    printf("Catalog id:\t\t%d\n", p.cat_id);
    printf("Name:\t\t\t%s\n", p.name);
    printf("Weight:\t\t\t%.3f\n", p.weight);
    printf("Price:\t\t\t%.2f\n", p.price);
    printf("Manufactured date:\t%02d.%02d.%4d\n", p.date.day, p.date.month, p.date.year);
}
 
/* ввод значений структуры Product_t с незатейливой проверкой данных */
Product_t getProduct(void){
    Product_t p;
    char *correct = "yes";
    char buf[STR_LEN];
    int good_date = 0;
    do {
        printf("Catalog id: ");
        fgets(buf, STR_LEN, stdin);
        p.cat_id = atoi(buf);
        printf("Name: ");
        fgets(buf, STR_LEN, stdin); /* на случай, если название из двух+ слов */
        buf[strlen(buf) - 1] = '\0'; /* удалить \n */
        strcpy(p.name, buf);
        printf("Weight: ");
        fgets(buf, STR_LEN, stdin);
        p.weight = atof(buf);
        printf("Price: ");
        fgets(buf, STR_LEN, stdin);
        p.price = atof(buf);
        do {
            printf("Date (dd.mm.yyyy): ");
            fgets(buf, STR_LEN, stdin);
            if ( sscanf(buf, "%d.%d.%d", &p.date.day, &p.date.month, &p.date.year) == 3 )
                good_date = ( p.date.day >= 1 && p.date.day <= 31 && p.date.month >= 1 &&
                            p.date.month <= 12 && p.date.year >= 1970 && p.date.year <= 2029 );
            else
                good_date = 0;
        } while ( !good_date );
        printf("\nConfirm values:\n");
        prnProduct(p);
        printf("It is correct? (yes/no): ");
        fgets(buf, STR_LEN, stdin);
        buf[strlen(buf) - 1] = 0;
    } while ( strcmp(buf, correct) );
    return p;
}
        
int main ( void ) {
    Product_t products[MAX_PRODUCTS];
    int i, count;
    char buf[STR_LEN];
    
    count = 0;
    while ( count < MAX_PRODUCTS ) {
        printf("\nProducts left: %d\nEnter a new one:\n", MAX_PRODUCTS - count);
        products[count] = getProduct();
        count++;
        printf("Continue? (yes/no): ");
        fgets(buf, STR_LEN, stdin);
        if ( strcmp(buf, "yes\n") != 0 )
            break;
    }
    
    if ( !count ){
        printf("No products entered!\n");
        exit(1);
    }
    
    printf("Unsorted:\n");
    printf(" #\tCat_id\tWeight\tPrice\tName\tManufactured date\n");
    for ( i = 0; i < count; i++ )
        printf("%3d\t%6d\t%6.3f\t%3.2f\t%s\t%02d.%02d.%4d\n", i, products[i].cat_id, products[i].weight, 
            products[i].price, products[i].name, products[i].date.day, products[i].date.month, products[i].date.year);
    
    qsort(products, count, sizeof(Product_t), cmpByDateAsc);
    printf("By date ascendant:\n");
    printf(" #\tCat_id\tWeight\tPrice\tName\tManufactured date\n");
    for ( i = 0; i < count; i++ )
        printf("%3d\t%6d\t%6.3f\t%3.2f\t%s\t%02d.%02d.%4d\n", i, products[i].cat_id, products[i].weight, 
            products[i].price, products[i].name, products[i].date.day, products[i].date.month, products[i].date.year);
    
    qsort(products, count, sizeof(Product_t), cmpByDateDesc);
    printf("By date descendant:\n");
    printf(" #\tCat_id\tWeight\tPrice\tName\tManufactured date\n");
    for ( i = 0; i < count; i++ )
        printf("%3d\t%6d\t%6.3f\t%3.2f\t%s\t%02d.%02d.%4d\n", i, products[i].cat_id, products[i].weight, 
            products[i].price, products[i].name, products[i].date.day, products[i].date.month, products[i].date.year);
    
    return 0;
}
как-то... К русскому языку сами приучайте
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru