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

Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру - C++

Восстановить пароль Регистрация
 
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
02.11.2012, 00:04     Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру #1
Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру.. И ещё, помогите пожалуйста её доработать,надо удалять учреждение с указанным весом из массива структур. Пробовал.не получается.
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
#include "stdafx.h"
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <clocale>
#include <conio.h> 
#include <Windows.h>
 
 
 
struct Product {
    char name[20];
    int stoimost;
    int weight;
    char shop[20];
    double gb[3];
    union
    {
        int int_weight; 
        double double_weight;
    };
    int type;
};
 
 
int _tmain(int argc, _TCHAR* argv[])
 
{
setlocale(LC_ALL, "Russian");
SetConsoleCP(1251);//кодировка консоли библиотека Windows.h
    SetConsoleOutputCP(1251);//кодировка консоли для вывода
const int a=2; //число структур
struct Product pr[a];//массив структур
for (int i=0; i<a; i++)//заполнение
{
cout<<endl<<"Введите наименование "<<i+1<<"-ого продукта:"<<endl;
cin>>pr[i].name;
cout<<endl<<"Введите стоимость "<<i+1<<"-ого проукта:"<<"\n";
cin>>pr[i].stoimost;
cout<<endl<<"Введите тип веса - 1(целое), 2(вещественное): ";
        cin>>pr[i].type;
        cout<<"вес: ";
        if(pr[i].type == 1)
            cin>>pr[i].int_weight;
        else if(pr[i].type == 2)
            cin>>pr[i].double_weight;
        else
            return 1;
 
cout<<endl<<"Введите название магазина "<<i+1<<"-ого продукта:\n ";
cin>>pr[i].shop;
cout<<endl<<"Введите габариты"<<i+1<<"-ого продукта:\n ";
cout<< "Длина:";
cin>>pr[i].gb[0];
cout<< "Ширина:";
cin>>pr[i].gb[1];
cout<< "Высота:";
cin>>pr[i].gb[2];
 
//сортировка
    /*for (int i=0; i<a-1; i++){
        for (int j=0; j<a-1-i; j++){
            if(pr[j + 1].type == 1){
                if(pr[j].type == 1){
                    if(pr[j + 1].int_weight < pr[j].int_weight) swap(pr[j], pr[j+1]);
                }
                else
                    if(pr[j + 1].int_weight < pr[j].double_weight) swap(pr[j], pr[j+1]);
            }
            else {
                if(pr[j].type == 2){
                    if(pr[j + 1].double_weight < pr[j].double_weight) swap(pr[j], pr[j+1]);
                }
                else
                    if(pr[j + 1].double_weight < pr[j].int_weight) swap(pr[j], pr[j+1]);
            }
        }
 
    }*/
    {
 
cout<<endl<<"|Название|Cтоимость|Магазин|Вес|Габариты|";
 
    cout<<endl<<pr[i].name << " " <<pr[i].stoimost << " "<<pr[i].shop << " " <<pr[i].weight << " "<<pr[i].gb[0]<<'x'<<pr[i].gb[1]<<'x'<<pr[i].gb[2]<<endl;
}
    
 
 
/*int k=0;
    char weight;
    cout<<endl<<"Введите вес:";
    cin>>weight; //тут хранится искомый знак
    for (int i=0; i<a; i++){
        if ((pr[i].weight, weight) == 0)
 
 
        
{
cout<<endl<<pr[i].name << " " <<pr[i].stoimost << " "<<pr[i].shop << " " <<pr[i].weight << " "<<pr[i].gb[0]<<'x'<<pr[i].gb[1]<<'x'<<pr[i].gb[2]<<endl;
}
if (k==0) 
        cout<<endl<<"Нет такого"<<endl;*/
 
    _getch();
    }
}
Добавлено через 2 часа 0 минут
Помогите пожалуйста исправить ошибки,программа то почти сделана.

Добавлено через 2 часа 16 минут
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 00:04     Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру
Посмотрите здесь:

C++ Программа выдает одну ошибку, якобы в 48 строчке
C++ Программа постоянно печатает степени целого числа 2
C++ Выдает одну одну ошибку как испрвить
C++ Удалить все числа, которые начинаются и заканчиваются на одну и ту же цифру
Масивы: удалить все числа которые начинаются и заканчиваются на одну и ту же цифру C++
Программа выдает одну и ту же ошибку C++
Написать программу хранения целочисленного, либо вещественного типа данных в переменной C++
C++ определить и вывести первую цифру из дробной части положительного вещественного числа

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
02.11.2012, 00:31     Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру #2
вы значение присваиваете double_weight или int_weight, а выводите совсем другое поле: weight.
выводите то, чему присваиваете, и будет вам счастье)
покажите код, который должен удалять элементы, вам помогут.
xexe73
1 / 1 / 0
Регистрация: 27.09.2012
Сообщений: 22
02.11.2012, 12:08  [ТС]     Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру #3
Цитата Сообщение от ZoRT Посмотреть сообщение
вы значение присваиваете double_weight или int_weight, а выводите совсем другое поле: weight.
выводите то, чему присваиваете, и будет вам счастье)
покажите код, который должен удалять элементы, вам помогут.
Я как раз и не могу сделать код который удаляет элементы.
Yandex
Объявления
02.11.2012, 12:08     Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру
Ответ Создать тему
Опции темы

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