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

Struct,union and bytes. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Двумерный массив на С http://www.cyberforum.ru/cpp-beginners/thread85416.html
Помогите!!!Нужно напистать на языке С вот такую программу: Найти сумму двух разреженных полиномов порядка N и M заданых ненулевыми коэфициэнтами и их номерами.
C++ Рекуректные формулы http://s006.***********/i213/1001/37/ed7a99615df3t.jpg желательно на С, непойму как решить пример ! http://www.cyberforum.ru/cpp-beginners/thread85402.html
C++ с++ срубит ли дамка одну или оби пешки
...осталась белая дамка и 2 чёрные пешки, позицыи которых извесны. Сможет ли дамка срубить одну или сразу две пешки??? помогите перепрограмировать на с++ с паскаля.... uses crt; type Point = record x:word; y:word; end; var d,s1,s2:Point; begin
C++ Ошибка в коде програмы
Чапаеву надо под прямым углом к фарватеру преодолеть реку Урал шириной b м.Его скорость в чтоячей воде V1 м/с; скорость течения реки - V2 м/с. Под каким углом к фарватеру он должен плыть чтобы его не "снесло"?Сколько времени займет переправа?Как изменится решение, если посредине реки Чапаева ранили в руку, и его скорость с V1 м/с упала до V3 v/c? Помогите пожалуйста #include <stdio.h>...
C++ Дано предложение, слова в нем разделены пробелом. Упорядочить слова по алфавиту (только по первой букве). http://www.cyberforum.ru/cpp-beginners/thread85357.html
Помогите, пожалуйста!
C++ найдите ошибку Составить функцию, которая, получив число А и массив из N целых чисел, анализирует массив. Если сумма всех элементов массива отрицательна, то функция формирует новый массив, поместив в него те элементы исходного массива, которые не делятся на число А. Если сумма всех элементов исходного массива положительна, то результирующий массив не формируется Написал функцию анализа но гдето ошибка... подробнее

Показать сообщение отдельно
Sekt
 Аватар для Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
13.01.2010, 20:44     Struct,union and bytes.
Разработать программу расчета закупки сырья промышленного предприятия. Данные о закупках хранить в виде массива структур. Итоговая информация должна выводиться на экран в виде таблицы, отсортированной по номеру накладной
использовать структуры, битовые поля и смеси; все логически законченные части программы оформить в виде отдельных функций
Как отсортировать структуру по накладной котороя включает в себя имя и стоимость товара.
Нельзя же просто по полю.Тогда выдет если номер накладной 2 (Батон стоит 100) а номер накладной 1 (Хлеб стоит 200)
То получится что накладная номер 1 уже станет Батон и т.д
Как приминит Битовые поля.И какие еще есть варианты для union?
Заранее благодарен за помощь.
// Console.cpp : Defines the entry point for the console application.
//
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
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
union price{int pr1;double pr2;};// объединение .Может принимать как инт так и дабл.
struct item // название товара.
{
    char name[10];
    short a:5; // битовое поле.
    price pr;
}items;
/* Функции */
void input(struct item *n,int size);// Ввод
void output(struct item *n,int size);// вывод результатов.
void sort(struct item *n,int size);// сортировка
/*-------------------*/
 
int _tmain(int argc, _TCHAR* argv[])
{
    short n=0;// количество товаров.
    int i;
    item it[10];
    printf("Vvedite kol-vo tovarov dla zakypki\n");
    scanf("%d",&n);
    for(i=0;i<n;i++)
        printf("Vvedite nomer %d-oi nakladnoi\n",i+1);
    scanf("%d",&it[i]);
    input(it,n);
    _getch();
    return 0;
}
 
void input(struct item *n,int size) // тело функции ввода.
{
    for(int i=0;i<size;i++)
    {
        printf("Vvedite nazvanie %d-ogo tovara\n",i+1);
        scanf("%s",&n[i].name);
        printf("Vvedite ceny %d tovara\n",i+1);
        scanf("%d",&n[i].pr.pr1);
    }
}
 
void output(struct item *n,int size)
{
    printf("Nazvanie| Cena |\n");
    for(int i=0;i<size;i++)
    {
        printf("%s",n[i].name);
        printf("%d",n[i].pr.pr1);
    }
}
/*
void sort(struct item *n,int size)// сортировка.
{
int i;
int j;
for(i=0;i<size-1;i++)
for(j=i+1;j<size;j++)
if(n[i]>n[j])
{
int temp;
temp=n[i];
n[i]=n[j];
n[j]=temp;
}
}
Добавлено через 3 часа 45 минут
Я сам нашел проблему.
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
// Console.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
union price{int pr1;double pr2;};// объединение .Может принимать как инт так и дабл.
struct item // название товара.
{
    char name[10];
    bool kol:true; // битовое поле.Логическая переменная.
    price pr;
    int number;// Номер накладной.
}items;
/* Функции */
bool check(bool);
void input(struct item *n,int size);// Ввод
void output(struct item *n,int size);// вывод результатов.
void sortbylist(struct item *n,int size);// сортировкa
/*-------------------*/
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    short f=0;// количество товаров.
    int i=0;
    item it[10];
    bool flag=true;
    printf("Vvedite kol-vo tovarov dla zakypki <10\n");
    std::cin>>f;  // ввод через поток 
    if(f>10)
        flag=false;
    if(check(flag))
    {
    input(it,f);
    sortbylist(it,f);
    output(it,f);
    }
    else cout<<"Nepravilnoe zna4enie";
    _getch();
    return 0;
}
bool check(bool f)
{
    struct item t;
    t.kol=f;
    if(t.kol)
        return true;
    else return false;
}
void input(struct item *n,int size) // тело функции ввода.
{
    
    for(int i=0;i<size;i++)
    {
        printf("Vvedite nomer nakladnoi\n");
        scanf("%d",&n[i].number);
        printf("Vvedite nazvanie %d-ogo tovara\n",i+1);
        scanf("%s",&n[i].name);
        printf("Vvedite ceny %d-ogo tovara\n",i+1);
        scanf("%d",&n[i].pr.pr1);
    }
}
 
void output(struct item *n,int size)
{
    //  printf("                   Nazvanie| Cena |\n");
    for(int i=0;i<size;i++)
    {
        printf("Nakladnaya nomer %d:",n[i].number);
        printf("Nazvanie:%s|Cena%4d\n",n[i].name,n[i].pr.pr1);
    }
}
 
void sortbylist(struct item *n,int size)// сортировка.
{
    struct item t;
    int i;
    int j;
    for(i=0;i<size-1;i++)
        for(j=i+1;j<size;j++)
            if(n[i].number>n[j].number)
            {
                t=n[i];
                n[i]=n[j];
                n[j]=t;
            }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru