Структура "Работники" - для всех людей выводится одна и та же зарплата - C (СИ)

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

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

Задание состоит в том чтоб сделать структуру с людьми которые работают в цеху, и посчитать их зарплату, пользователь вводит кол людей, кол изделей собраных каждым работником класса а, в, с, и расценку, в структуре вывессти зарплату. У меня как бы все выходит только вывод зарплату последнего из работников и такую же приписывает всем.
# include <stdio.h>
# include <conio.h>
# include <string.h>
# include <math.h>
# include <stdlib.h>
 
FILE* file;
int main ()
{
int i,n,k,sa,sb,sc;
float seredne;
seredne=0;
k=0;
sa=10;
sb=15;
sc=20;
 
struct ludy 
{
char surname[20];
char ceh[20];
int a;
int b;
int c;
}zavod[100];
printf("Vvedit` kil`kist` ludey ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Vvedit` prizvusche %d luduny ",i);
scanf("%s",zavod[i].surname);
printf("\n%s\n", zavod[i].surname);
printf("Vvedit' ceh %d ludynu " ,i);
scanf("%s",zavod[i].ceh);
printf("Vvedit' kol vyrobiv A ");
scanf("%d",&zavod[i].a);
printf("Vvedit' kol vyrobiv B ");
scanf("%d",&zavod[i].b);
printf("Vvedit' kol vyrobiv C ");
scanf("%d",&zavod[i].c);
k=(sa*zavod[i].a)+(sb*zavod[i].b)+(sc*zavod[i].c);
}
file=fopen("ludy.txt","w+");
for(i=1;i<=n;i++)
{
    for(i=1;i<=n;i++)
fprintf(file,"%s %s %d %d %d %d ",zavod[i].surname,zavod[i].ceh,zavod[i].a,zavod[i].b,zavod[i].c, k);
 
{
 
}
}
fclose(file);
 
getch ();
}
пример для 2-х работников при вводе а=1 в=2 с=3 должно вывести зарплату 85 при вводе а=4 в=5 с=6 должно вывести 235 проблема в том что оно выводит всем зарплату последнего
teplov lol 1 2 3 235 tkachenko kol 4 5 6 235 то есть всем зарплату 235 выбило как исправить не знаю

Решение задачи: «Структура "Работники" - для всех людей выводится одна и та же зарплата»

textual
Листинг программы
int zp(struct ludy* lydu){
return (sa*lydu->a)+(sb*lydu->b)+(sc*lydu->c);
}

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

В данном коде:

  1. zp - это функция, которая принимает один аргумент типа struct ludy по имени lydu.
  2. struct ludy - это структура данных, которая содержит три поля: a, b и c.
  3. Функция zp возвращает результат вычисления выражения (sa*lydu->a)+(sb*lydu->b)+(sc*lydu->c), где sa, sb и sc - это константы, а lydu->a, lydu->b и lydu->c - это поля структуры lydu.
  4. Значение выражения (sa*lydu->a)+(sb*lydu->b)+(sc*lydu->c) будет зарплатой, которая вычисляется на основе значений полей структуры lydu.
  5. Предполагается, что для всех работников значение полей lydu->a, lydu->b и lydu->c одинаково, поэтому и зарплата для всех будет одинаковой.
  6. Если поля lydu->a, lydu->b и lydu->c будут разными для разных работников, то зарплата для них будет разной.
  7. Возможно, что sa, sb и sc - это коэффициенты, которые определяют вклад каждого из полей в общую зарплату.
  8. Функция zp может использоваться для вычисления зарплаты для каждого работника в цикле, если она вызывается для каждого работника и результат сохраняется в отдельной переменной.

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


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

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

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