Не выполнятся условие, чтобы вычислить зарплату - C (СИ)

Узнай цену своей работы

Формулировка задачи:

//---------------------------------------------------------------------------
 
#include <stdio.h>
#include <conio.h>
//---------------------------------------------------------------------------

int main()
{
int i,n,d;
struct zarplata
{
char name[15];
int god_r;
int stag;
int oklad;
float zarplatta;
};
struct zarplata base [50];
puts("kolichestvo-->");
scanf("%d",&n);
for (i = 0; i < n; i++)
{
puts ("fio-->");
scanf("%s",base[i].name);
puts ("data-->");
scanf("%d",&base[i].god_r);
puts ("staj-->");
scanf("%d",&base[i].stag);
puts ("oklad-->");
scanf("%d",&base[i].oklad);
}
printf("|Fio            |Data           |Staj           |Oklad          |\n");
printf("___________________________________________________________________________\n");
for (i = 0; i < n; i++)
{
printf("|%15s|%15d|%15d|%15d|\n",base[i].name,base[i].god_r,base[i].stag,base[i].oklad);
printf("___________________________________________________________________________\n");
}
if (base[i].stag>0 && base[i].stag<4)
base[i].zarplatta=base[i].oklad;
if (base[i].stag>5 && base[i].stag<9)
base[i].zarplatta=base[i].oklad+base[i].oklad*10/100;
if (base[i].stag>10 && base[i].stag<19)
base[i].zarplatta=base[i].oklad+base[i].oklad*(float)30/100;
if (base[i].stag>20 && base[i].stag<50)
base[i].zarplatta=base[i].oklad+base[i].oklad*50/100;
{
printf("|%15s|%15d|%15d|%15d|\n",base[i].name,base[i].god_r,base[i].stag,base[i].zarplatta);
printf("___________________________________________________________________________\n");
}
getch();
return 0;
}
//---------------------------------------------------------------------------

Решение задачи: «Не выполнятся условие, чтобы вычислить зарплату»

textual
Листинг программы
int main()
{
    int i,n,d;
    struct zarplata
    {
        char name[15];
        int god_r;
        int stag;
        int oklad;
        float zarplatta;
    };
    struct zarplata base [50];
    puts("kolichestvo-->");
    scanf("%d",&n);
    for (i = 0; i < n; i++)
    {
        puts ("fio-->");
        scanf("%s",base[i].name);
        puts ("data-->");
        scanf("%d",&base[i].god_r);
        puts ("staj-->");
        scanf("%d",&base[i].stag);
        puts ("oklad-->");
        scanf("%d",&base[i].oklad);
    }
    printf("|Fio |Data |Staj |Oklad | Zp|\n");
    printf("<br> ___\n");
    for (i = 0; i < n; i++)
    {
        
        if (base[i].stag>0 && base[i].stag<=4)
            base[i].zarplatta=base[i].oklad;
        if (base[i].stag>=5 && base[i].stag<=9)
            base[i].zarplatta=base[i].oklad+base[i].oklad*10/100;
        if (base[i].stag>=10 && base[i].stag<=19)
            base[i].zarplatta=base[i].oklad+base[i].oklad*(float)30/100;
        if (base[i].stag>=20 && base[i].stag<=50)
            base[i].zarplatta=base[i].oklad+base[i].oklad*50/100;
        printf("|%15s|%10d|%10d|%10d|%10.2f|\n",
            base[i].name,base[i].god_r,base[i].stag,base[i].oklad, base[i].zarplatta);
    }
    printf("<br> ___\n");
    getch();
    return 0;
}

Объяснение кода листинга программы

  1. В начале кода объявлены переменные i, n, d и структура zarplata.
  2. В структуре zarplata содержатся поля name, god_r, stag, oklad и zarplatta.
  3. Создается массив структур zarplata размером 50 элементов с именем base.
  4. Пользователю предлагается ввести количество сотрудников (переменная n).
  5. Затем происходит цикл, в котором пользователю предлагается ввести данные для каждого сотрудника: ФИО, год рождения, стаж, оклад.
  6. Данные записываются в соответствующие поля структуры zarplata.
  7. После ввода всех данных выводится таблица с данными о сотрудниках, включая их ФИО, год рождения, стаж, оклад и зарплату.
  8. Зарплата рассчитывается в зависимости от стажа: если стаж от 0 до 4, зарплата равна окладу. Если стаж от 5 до 9, к окладу добавляется 10% от оклада. Если стаж от 10 до 19, к окладу добавляется 30% от оклада. Если стаж от 20 до 50, к окладу добавляется 50% от оклада.
  9. В конце программы пользователю предлагается нажать любую клавишу для выхода.
  10. Программа возвращает 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы