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