02.11.2012, 00:04. Просмотров 372. Ответов 2
Программа с объединением, место целочисленного или вещественного числа,выдает постоянно одну и ту же цифру.. И ещё, помогите пожалуйста её доработать,надо удалять учреждение с указанным весом из массива структур. Пробовал.не получается.
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 минут