Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2014, 10:30   #1
Olya_zvz
Новичок
Джуниор
 
Регистрация: 08.06.2014
Сообщений: 1
Печаль Структура,массив

Постановка задачи
В фирме есть 3 участка. На каждом участке может трудиться любой работник. Часовая оплата труда на каждом участке определяется таблицей тарифов.

1. Пусть на фирме работает 10 работников,каждый трудится только на одном участке.


Код:
1   Вася    3   10
2   Петя    2   10
3   Дима    1   16
4   Боня    2   20
5   Рома    1   20
6   Миша    2   12
7   Вова    3   10
8   Олег    3   28
9   Никита  2   40
10  Наташа  1   40
1 столбец номер работника.
2 столбец Имя.
3 столбец участок.
4 столбец отработано часов.



Структура

Код:
#include <conio.h>
#include <stdio.h>
#include <string.h>
 
struct Ceh
{
    int nomer;
    char name[10];
    int uch;
    int hourwork;
 
};
1.1 Определить зарплату работников исходя из тарифа и кол.ва отработанных часов.
Функция

Код:
void salary(struct Ceh All[],float T[],int n,float s[])
{
    for(int i=0;i<n;i++)
        {
        if(All[i].uch==1)
            s[i]=All[i].hourwork*T[0];
        if(All[i].uch==2)
            s[i]=All[i].hourwork*T[1];
        if(All[i].uch==3)
            s[i]=All[i].hourwork*T[2];
        }
}
исходный код
Код:
void main(void)
{
setlocale(LC_ALL,".1251");
FILE *in;
in=fopen("texet.txt","rt");
float T[]={100,200,300};            /////// ТАРИФ ПО ЦЕХУ
struct Ceh All[10];
float s[10];
 
in = fopen("texet.txt", "rt");   
salary(All,T,n,s);
for(int i=0;i<n;i++)
    {
        printf("\nЗарплата %d рабочего  = %d\n",i+1,s[i]);
    }
1.2 Определите работника с максимальной зарплатой


Код:
in = fopen("texet.txt","rt");
            float max=s[0];
            int jk=1;
            for(int i=1;i<n;i++)
            {
                if(s[i]>max)
                    max=s[i];
                jk=i;
            }
            printf("Работник %d %s с максимальной зарплатой %d",jk,All[jk].name,max);
2 Пусть каждый работник имеет право работать на любом участке произвольное количество часов.


Код:
1   Вася    3   10
2   Вася    2   10
3   Дима    1   16
4   Рома    2   20
5   Рома    1   20
6   Дима    2   12
7   Вова    3   10
8   Олег    3   28
9   Никита  2   40
10  Вова    1   40
2.1 Вычислить суммарное количества часов,отработанных каждым работником и его суммарную зарплату.
2.2 Найти работников,получивших максимальную зарплату.






Пожалуйста,прошу подскажите каким образом можно это вычислить, какие ошибки
Olya_zvz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура и массив(язык-С) Mr.Skip Помощь студентам 3 30.03.2014 23:53
Структура и динамический массив averardo Общие вопросы C/C++ 8 17.06.2013 15:10
Структура в С++ (динамический массив) Елена_05 Общие вопросы C/C++ 1 23.05.2011 12:20
классы, структура и массив. С++ 9rki Помощь студентам 12 27.04.2010 13:34