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

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

Восстановить пароль Регистрация
 
maxgalll
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 24
02.06.2010, 18:00     массив структур, не могу дописать... макс и мин одновременно... #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
#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");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2010, 18:00     массив структур, не могу дописать... макс и мин одновременно...
Посмотрите здесь:

C++ Массив. Макс и мин элемент.Шаблоны и функции.
C++ двумерный массив макс мин
Определить макс и мин цифры C++
C++ Одномерный массив макс мин
список мин и макс элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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]
}
maxgalll
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 24
03.06.2010, 16:37  [ТС]     массив структур, не могу дописать... макс и мин одновременно... #3
edd, огромное спасибо, но он считает не так как нада.... зарплату он выставляет 0 а стаж вообще выводит число в сотни раз превышающее мной вводимое...
и обьясни пожалуйста c_num это разность зарплаты на стаж.... ???
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;
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");
}
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; на случай если вообще все одинаковые
maxgalll
0 / 0 / 0
Регистрация: 02.06.2010
Сообщений: 24
07.06.2010, 15:04  [ТС]     массив структур, не могу дописать... макс и мин одновременно... #7
edd, большое спасибо !!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2012, 19:27     массив структур, не могу дописать... макс и мин одновременно...
Еще ссылки по теме:

C++ Массив поиск мин-макс элемента
C++ Мин/макс. из n чисел; простые числа
C++ Мин-макс в списке

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

Или воспользуйтесь поиском по форуму:
Alina_1986
0 / 0 / 0
Регистрация: 04.01.2012
Сообщений: 28
07.01.2012, 19:27     массив структур, не могу дописать... макс и мин одновременно... #8
Привет Maxgall!
Можешь скинуть программу Дана информация о пяти рабочих цеха. Структура имеет вид: фамилия, размер зарплаты, стаж работы. Вывести данные о рабочем с наибольшей зарплатой и наименьшим стажем. мне на почту :
haider1@rambler.ru!
Очень нужна была.
А то по твоей когда делала (листингу) ничего не получилось?!

С уважением,
Alina_1986
Yandex
Объявления
07.01.2012, 19:27     массив структур, не могу дописать... макс и мин одновременно...
Ответ Создать тему
Опции темы

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