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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maxgalll
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 24
#1

массив структур, не могу дописать... макс и мин одновременно... - C++

02.06.2010, 18:00. Просмотров 501. Ответов 7
Метки нет (Все метки)

массив структур.

Дана информация о пяти рабочих цеха. Структура имеет вид: фамилия, размер зарплаты, стаж работы. Вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем.

я сделал вывод на экран работника с максимальной зарплатой.... но ни как не могу дагнать как сделать что бы он сартиравал ещё и по минимальному стажу....

подскажите пожалуйсто.... вот листинг...

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
  
#define S_FAM 10
#define size 5
 
struct Ceh {
unsigned int zp;
unsigned int staj;
char fam[S_FAM];
};
 
void Print(Ceh *m , int size_m );     //Vivod massiva stryktyr
void Input(Ceh *m , int size_m );     //Vvod massiva stryktyr
 
int main(){
Ceh mas[size];
Input(mas,size);
Print(mas,size);
getch();
return 0;
}
//Vivod massiva stryktyr
void Print(Ceh *m , int size_m ){
int i,j;
printf("Rabotnik s naibolshei zarplatoi i naimenshim stajem\n");
for(i = 0 ; i < size_m - 1; i++)
 
    if(m[j].zp < m[i].zp){
    Ceh tmp = m[i];
    m[i]=m[j];
    m[j] = tmp;      }
 
        printf("\n");
        printf(" Familia rabotnika: %s",m[i].fam); printf("\n");
        printf(" Zarplata: %d",m[i].zp); printf("\n");
        printf(" Staj: %d",m[i].staj); printf("\n");
}
//Vvod massiva stryktyr
void Input(Ceh *m , int size_m ){
printf("Input Ceh Mas\n");
    for( int i = 0 ; i < size_m ; i++ ){
        printf("\n");
                printf(" Vvedite familiy rabotnika ");scanf("%s",m[i].fam); 
        printf(" Vvedite zarplaty ");scanf("%d",&m[i].zp);
        printf(" Input staj ");scanf("%d",&m[i].staj);
}
        printf("\n");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2010, 18:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массив структур, не могу дописать... макс и мин одновременно... (C++):

Одномерный массив макс мин - C++
Вообщем не могу выполнить 1\2 сумму нашел всё работает нормально но вот макс мин не могу найти и поменять местами мб подскажите что куда ) ...

двумерный массив макс мин - C++
кодеры помогите срочно нужен код на Dev-C++ учу дев но на заочке еще нив чем не разобрался тольком уже требуют написать прогу на...

Массив поиск мин-макс элемента - C++
Задание: Определить в массиве элемент, самый большой в своей строчке и самый минимальный в своем столбце. Если токо элемента нет...

Массив. Макс и мин элемент.Шаблоны и функции. - C++
Само задание вот: Найти max(a2,a4,...a(2k)+min(a1,a3,...a(2k+1). Короче, вроде бы найти макс и мин эл-т. Нужно сделать через...

Мин-макс в списке - C++
не получается найти минимальный и максимальный элементы в списке: struct Node {int d,a; int value; Node *next; //указатель...

Мин. и макс. элементы в файле - C++
Не находит мин. и макс. элементы. Где ошибка? int max=0,min=0; while(fin.read((char*)&amp;a,sizeof(a))) { if (a.oboroti &gt; max...

7
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
02.06.2010, 19:12 #2
C++
1
2
3
4
5
6
7
8
9
10
void Print(Ceh *m , int size_m ){
Ceh temp; temp=m[0];
printf("Rabotnik s naibolshei zarplatoi i naimenshim stajem\n");
for(int i = 0 ; i < size_m ; i++)
if(m[i].staj<temp.staj) tmp = m[i];}
cout.....
for(int i = 0 ; i < size_m ; i++)
if(m[i].staj>temp.staj && m[i].zp>temp.zp) tmp=m[i];
cout....
 }
должно работать, не проверял

Добавлено через 14 минут
неправильно ща перепишем

Добавлено через 14 минут
C++
1
2
3
4
5
6
7
8
void Print(Ceh *m , int size_m ){
double temp=(m[0].zp)/(m[0].staj) ,k ; int c_num;
printf("Rabotnik s naibolshei zarplatoi i naimenshim stajem\n");
for(int i = 0 ; i < size_m ; i++){
    k=(m[i].zp)/(m[i].staj); if (k>temp) {temp=k; c_num=i;}}
 
cout.....m[c_num]
}
1
maxgalll
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 24
03.06.2010, 16:37  [ТС] #3
edd, огромное спасибо, но он считает не так как нада.... зарплату он выставляет 0 а стаж вообще выводит число в сотни раз превышающее мной вводимое...
и обьясни пожалуйста c_num это разность зарплаты на стаж.... ???
0
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
03.06.2010, 17:38 #4
c_num это сразу номер работника с макс зп и мин стажем,
тебе нужно cout<<m[c_num].staj<<" "<<m[c_num].zp<<endl;
0
maxgalll
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 24
04.06.2010, 11:06  [ТС] #5
edd, когда ввожу например из трех работников:
у первого зп 100 стаж 1
у второго зп 200 стаж 2
у третьего зп 300 стаж 3
он выводит по нулям всё....

C++
1
2
3
4
5
6
7
8
9
10
11
12
//Vivod massiva stryktyr
void Print(Ceh *m , int size_m ){
double temp=(m[0].zp)/(m[0].staj) ,k ; int c_num;
printf("Rabotnik s naibolshei zarplatoi i naimenshim stajem\n");
for(int i = 0 ; i < size_m ; i++){
        k=(m[i].zp)/(m[i].staj); if (k>temp) {temp=k; c_num=i;}}
 
        printf("\n");
        printf(" Familia rabotnika: %s",m[c_num].fam); printf("\n");
        printf(" Zarplata: %d",m[c_num].zp); printf("\n");
        printf(" Staj: %d",m[c_num].staj); printf("\n");
}
0
edd
36 / 36 / 0
Регистрация: 13.05.2010
Сообщений: 81
05.06.2010, 01:11 #6
C++
1
2
3
4
5
6
void Print(Ceh *m , int size_m ){
double temp=(m[0].zp)/(m[0].staj) ,k ; int c_num; Ceh t; t=m[0];
printf("Rabotnik s naibolshei zarplatoi i naimenshim stajem\n");
for(int i = 0 ; i < size_m ; i++){
        k=(m[i].zp)/(m[i].staj); if (k>temp) {t=m[i]; temp=k; c_num=i;}
        if (k==temp && m[i].zp < t.zp) {t=m[i];  c_num=i;}}
проверил работает, только искомых работников может быть > 1 и тогда тебе придётся сюда массив
лепить или этого нет в условии?

Добавлено через 50 минут
и вместо int c_num напиши int c_num=0; на случай если вообще все одинаковые
1
maxgalll
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 24
07.06.2010, 15:04  [ТС] #7
edd, большое спасибо !!!!!
0
Alina_1986
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 28
07.01.2012, 19:27 #8
Привет Maxgall!
Можешь скинуть программу Дана информация о пяти рабочих цеха. Структура имеет вид: фамилия, размер зарплаты, стаж работы. Вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем. мне на почту :
haider1@rambler.ru!
Очень нужна была.
А то по твоей когда делала (листингу) ничего не получилось?!

С уважением,
Alina_1986
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2012, 19:27
Привет! Вот еще темы с ответами:

список мин и макс элемент - C++
Дан список из целых чисел, найти первое из всех минимальных значений и последнее из всех максимальных, при этом удалить все значения между...

Определить макс и мин цифры - C++
Дано натуральное число (вводится с клавиатуры) 1) Определить две его максимальные цифры 2) Определить две его минимальные цифры ...

макс и мин растояние между точками - C++
задача в массиве (х) заданы координаты точек х и в массиве (у) координаты точек у найти макс и мин раст от 1 точки ! вот я попробовал...

Rand(); рамки мин/макс значения - C++
Не могу разобраться, в учебники да и на сайте идёт такой пример // автоматическая рандомизация srand(time(0)); // числа в...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
07.01.2012, 19:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru