Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
minimil
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 3
1

Определить фамилию женщины, имеющей самую маленькую зарплату

30.05.2012, 22:41. Просмотров 612. Ответов 8
Метки нет (Все метки)

Всем привет
проверьте пожалуйста в чем ошибка?????

Известны данные о 10 сотрудниках фирмы (фамилия, зарплата и пол). Определить фамилию женщины, имеющей самую маленькую зарплату.
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <math.h>
 
using namespace std;
 
int main()
{
     struct sotrudnik_firm
    {
           std::string fam;
           int zarplata;
           char pol;
    } group [3];
 
   for (int i=0; i<3; i++)
   {
       cout << "Vedite svedinie o "<< i+1 << "-om sotrudnike "<<endl;
       cout << "familiya: "<<endl;
       cin >> group[i].fam;
       cout << "zarplata: "<<endl;
       cin >> group[i].zarplata;
       cout << "pol (0 dlya mugchin, 1 dlya jenschin): "<<endl;
       cin >> group[i].pol;
   }
 
     int min_zarplata = 0;
     int number_1min_zarplata = 0;
 
     for (int i=0; i<3; i++)
     {
      if ((group[i].pol = 1) && (group[i].zarplata < min_zarplata))
      {
          min_zarplata = group[i].zarplata;
          number_1min_zarplata=i;
      }
     }
    cout<<"Rezylbtat programmbl:  "<<endl;
    cout << endl<< group[number_1min_zarplata].fam;
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 22:41
Ответы с готовыми решениями:

Определить фамилии мужчины и женщины, имеющих самую маленькую зарплату
Помогите решить задачу. Известны данные о 20 сотрудниках фирмы (фамилия,...

Определить самую большую отрицательную и самую маленькую положительную температуры
Помогите новичку,первая контрольная по программированию в с++ В массиве T(12)...

Определить самую большую четную и самую маленькую нечетную цифру в матрице и сложить их
Помогите решить задачу:

В массиве найти самую маленькую серию подряд стоящих нечетных элементов... (Как доработать программу?)
Помогите доработать программу В заданном массиве целых чисел найти самую...

Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату
Дело обстоит так: Прочитав и, как я думал, поняв 3ю главу книги &quot;Как...

8
Andrey.K
344 / 265 / 128
Регистрация: 14.11.2010
Сообщений: 482
30.05.2012, 22:49 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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <string>
#include <conio.h>
using namespace std;
     struct sotrudnik_firm
    {
           string fam;
           int zarplata;
           char pol;
    } group [3];
int main()
{
   for (int i=0; i<3; i++)
   {
       cout << "Vedite svedinie o "<< i+1 << "-om sotrudnike "<<endl;
       cout << "familiya: "<<endl;
       cin >> group[i].fam;
       cout << "zarplata: "<<endl;
       cin >> group[i].zarplata;
       cout << "pol (0 dlya mugchin, 1 dlya jenschin): "<<endl;
       cin >> group[i].pol;
   }
 
     int min_zarplata = 0;
     int number_1min_zarplata = 0;
 
     for (int i=0; i<3; i++)
     {
      if ((group[i].pol = 1) && (group[i].zarplata < min_zarplata))
      {
          min_zarplata = group[i].zarplata;
          number_1min_zarplata=i;
      }
     }
    cout<<"Rezylbtat programmbl:  "<<endl;
    cout << endl<< group[number_1min_zarplata].fam;
    getch();
    return 0;
}
1
MrGluck
Модератор
Эксперт CЭксперт С++
8102 / 4953 / 1436
Регистрация: 29.11.2010
Сообщений: 13,439
30.05.2012, 22:59 3
Не могу смотреть на
pol (0 dlya mugchin, 1 dlya jenschin)
C++
1
2
3
4
5
6
7
#include <clocale>
 
int main()
{
    setlocale(LC_ALL, "russian");
   . . .
}
0
minimil
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 3
31.05.2012, 12:41  [ТС] 4
Andrey.K, привет! почему он не правильно читает, в чем ошибка? в цикле if
0
Andrey.K
344 / 265 / 128
Регистрация: 14.11.2010
Сообщений: 482
31.05.2012, 16:19 5
Цитата Сообщение от minimil Посмотреть сообщение
Andrey.K, привет! почему он не правильно читает, в чем ошибка? в цикле if
Потому что в конструкции if должно быть двойное равно ==
а именно
C++
1
if ((group[i].pol = 1) && (group[i].zarplata < min_zarplata))
за мени на
C++
1
 if ((group[i].pol == 1) && (group[i].zarplata < min_zarplata))
1
minimil
0 / 0 / 0
Регистрация: 30.05.2012
Сообщений: 3
31.05.2012, 18:02  [ТС] 6
Andrey.K, да я пробовал ставить == равно она все ровно не правельно работает
0
m2rus
0 / 0 / 0
Регистрация: 28.05.2012
Сообщений: 1
31.05.2012, 18:17 7
C++
1
2
int min_zarplata = 0;
     int number_1min_zarplata = 0;
Здесь минимальная зарплата равна нулю. Тогда при сравнении
C++
1
if ((group[i].pol == 1) && (group[i].zarplata < min_zarplata))
Сравнивается зарплата работника (которая > 0 если я правильно понял) и ноль. Это в принципе не будет работать.
Перед сравнением в переменную min_zarplata закиньте group[0].zarplata. Это простейший способ
0
Andrey.K
344 / 265 / 128
Регистрация: 14.11.2010
Сообщений: 482
31.05.2012, 19:27 8
Вообщем у тебя не только в конструкции была ошибка, но у ты назначил тип char для поля pol, оно не могло проверить из-за того что эту переменную смотрела по таблице ASCII , а там код другой получается, я переделал поле pol на тип int и переделал условие, Теперь всё работает. Держи:
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
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
struct sotrudnik_firm
{
    string fam;
    int zarplata;
    int pol;
};
int main()
{
    sotrudnik_firm* group=new sotrudnik_firm[3];
    for (int i=0; i<3; i++)
    {
       cout << "Vvedite svedeniya o "<< i+1 << "-om sotrudnike: "<<endl;
       cout << "Familiya: "<<endl;
       cin >> group[i].fam;
       cout << "Zarplata: "<<endl;
       cin >> group[i].zarplata;
       cout << "pol (0 dlya mujchin, 1 dlya jenshin): "<<endl;
       cin >> group[i].pol;
    }
    int min_zarplata_women = 0; 
    int pos=0;
    for(int i=0;i<3;i++)
    {
        if(group[i].pol==1) { min_zarplata_women=group[i].zarplata; pos=i; break; }
    }
 
     for (int i=0; i<3; i++)
     {
        if (group[i].pol == 1 && group[i].zarplata < min_zarplata_women)
        {
            min_zarplata_women = group[i].zarplata;cout<<min_zarplata_women<<endl;
            pos=i;
        }
     }
    cout<<"Rezultat programmi:  "<<endl;
    cout << endl<< group[pos].fam;
    getch();
    return 0;
}
2
KathrineY
2 / 2 / 1
Регистрация: 20.11.2012
Сообщений: 197
02.04.2013, 22:57 9
Цитата Сообщение от Andrey.K Посмотреть сообщение
Вообщем у тебя не только в конструкции была ошибка, но у ты назначил тип char для поля pol, оно не могло проверить из-за того что эту переменную смотрела по таблице ASCII , а там код другой получается, я переделал поле pol на тип int и переделал условие, Теперь всё работает. Держи:
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
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
struct sotrudnik_firm
{
    string fam;
    int zarplata;
    int pol;
};
int main()
{
    sotrudnik_firm* group=new sotrudnik_firm[3];
    for (int i=0; i<3; i++)
    {
       cout << "Vvedite svedeniya o "<< i+1 << "-om sotrudnike: "<<endl;
       cout << "Familiya: "<<endl;
       cin >> group[i].fam;
       cout << "Zarplata: "<<endl;
       cin >> group[i].zarplata;
       cout << "pol (0 dlya mujchin, 1 dlya jenshin): "<<endl;
       cin >> group[i].pol;
    }
    int min_zarplata_women = 0; 
    int pos=0;
    for(int i=0;i<3;i++)
    {
        if(group[i].pol==1) { min_zarplata_women=group[i].zarplata; pos=i; break; }
    }
 
     for (int i=0; i<3; i++)
     {
        if (group[i].pol == 1 && group[i].zarplata < min_zarplata_women)
        {
            min_zarplata_women = group[i].zarplata;cout<<min_zarplata_women<<endl;
            pos=i;
        }
     }
    cout<<"Rezultat programmi:  "<<endl;
    cout << endl<< group[pos].fam;
    getch();
    return 0;
}
что такое group[i] и роs?для чего это
0
02.04.2013, 22:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 22:57

Выдать самую распространенную фамилию девушки из списка студентов
Здравствуйте! Решите задачи, пожалуйста. 1. Создать структуру студент со...

Выдать самую распространенную фамилию девушки из списка студентов
Выдать самую распространенную фамилию девушки из списка студентов. Студенток с...

Определить самую длинную и самую короткую из введенных строк
Необходимо организовать ввод 3 названия городов. А потом вывести на экран...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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