Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > задать в двух массивах


Автор: Narim 24.5.2011, 10:31
здраствуйте, я никак не пойму задачу. подскажите как решить.(задача на языке си)
Исходные данные. урожай в каждом районе и засеваемые площади - задать в двух массивах. для определения урожайности по каждому району найти частное от деления элементов массивов, содержащих исходные данные. для определения средней урожайности по области найти частное от деления сумм элементов массивов исходных данных. спасибо.

Автор: t_gran 24.5.2011, 10:54
Narim, очень торопился, поэтому чтобы не закорачиваться везде использовал целый тип. Я думаю перевести где нужно в вещественный труда не составит?
Код

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//----------------------------------------------//
void SetValues(unsigned *arr, unsigned count, unsigned min, unsigned max)
{
   srand(time(NULL));
   
   while (count--)
   {
      arr[count] = rand()%(max-min) + min;
   }
}
//----------------------------------------------//
void Print(unsigned *arr, unsigned count)
{
   while (count--)
   {
      printf("%4d", arr[count]);
   }
   printf("\n");
}
//----------------------------------------------//
void CalculationYield(unsigned *crop, unsigned *area, unsigned *yield, unsigned count)
{
   while (count--)
   {
      yield[count] = area[count] / crop[count];
   }
}
//----------------------------------------------//
unsigned AllYield(unsigned *crop, unsigned *area, unsigned count)
{
   unsigned sumCrop = 0;
   unsigned sumArea = 0;
   
   while (count--)
   {
      sumCrop += crop[count];
      sumArea += area[count];
   }
   
   return sumArea / sumCrop;
}
//----------------------------------------------//

#define SIZE 10

int main()
{
   unsigned crop[SIZE], area[SIZE], yield[SIZE];
   
   SetValues(crop, SIZE,  1, 15);
   SetValues(area, SIZE, 30, 40);

   printf("crop\n");
   Print(crop, SIZE);

   printf("area\n");
   Print(area, SIZE);

   CalculationYield(crop, area, yield, SIZE);

   printf("yield\n");
   Print(yield, SIZE);

   printf("middle = %d\n", AllYield(crop, area, SIZE));
   
   
   return 0;
}

Автор: Narim 24.5.2011, 11:11
спасибо. но,если честно трудновато составить вещественный тип)) и можно вопрос это код с++?, я просто просто я не проходил его) 

Автор: Rodman 24.5.2011, 12:10

M
Rodman
Модератор: Название темы должно содержать язык написания!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)