Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[C],поиск абсолютного среднего в массиве

12K
17 ноября 2006 года
mortar89
25 / / 17.11.2006
задание:определить массив как случайное число, в диапозоне 50-200.Выделить под него динамически памятьи заполнить его случайными числами(это я все сделал ).Найти из непрерывных последовательностей отрицательных чисел, ту которая имеет наибольшее абсолютное значение среднего арифмитического ее элементов.
Народ, поясните пожалуйста что не так в моем коде программы
Код:
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
#include <alloc.h>
int main(void) {
 int size;                
 int *A;      
 int *i;
 int sred, k=0, max=0, summa=0;
  randomize();
  size=random(151)+50;
  printf("size=%d\n",size);

  A=(int *)malloc(size*sizeof(int));

  printf("Start massiv:\n");
  for (i=A; i<A+size; i++) {
    *i=random(101)-50;
    printf("%3d ",*i);
    }
 printf("\n");


  for (i=0, i=A; i<A+size; i++) {
    if (i<0)

       {
        summa=summa + i; k++;
       }
 if(max>summa){
  summa=max; }

  sred=summa/k;

 if(i<0 && i+1>0)
  { summa=0;
    sred=0;
    k=0;
    }
 }


   printf("Max average negative sequence%4d", sred);



  free(A);
  getch();
  return 0;
 }
242
17 ноября 2006 года
Оlga
2.2K / / 04.02.2006
только вот незнаю как генерить правильно отрицательные случайные числа.
Код:
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
//#include <alloc.h>
int main(void) {
 
 int size;                
 int *A;      
 int *i;
 int k = 0, max_mid=0, summa=0, j;
 srand(time(NULL));
 size=rand()%151+50;
 printf("size=%d\n",size);
 A=(int *)malloc(size*sizeof(int));
 printf("Start massiv:\n");
 
 for(i=A; i < A+size; i++)
 {
  *i =   rand()%100-50; // values from - 50 to 49
  printf("%3d ",*i);
    }
 printf("\n");
 
 for (j = 0; j < size; j++)
 {
  if (A[j] < 0)
  {
   summa += abs(A[j]);
   k++;
  }
  if( A[j] > 0 || j == size-1)
  {
   if(k > 0 && max_mid < summa/k)
   {
    max_mid = summa/k;
   // printf("sum = %d, k = %d\n", summa, k);
   }
   k = 0;
   summa = 0;
  }
 }
 
   printf("Max average negative sequence%4d\n\n", max_mid);
 
   free(A);
   getch();
   return 0;
 }
12K
17 ноября 2006 года
Belomorkan
59 / / 18.10.2006
Цитата:
только вот незнаю как генерить правильно отрицательные случайные числа

Я это в книге какойто видел Оля,я поищу и скину сюда Ок???Кстати привет!

242
17 ноября 2006 года
Оlga
2.2K / / 04.02.2006
честно говоря в твое решение не вникала, постаралась найти технические ошибки (грамматические т.е.). если мое устроит, лучше ты в него вникай .
[quote=mortar89]Народ, поясните пожалуйста что не так в моем коде программы
Код:
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
#include <alloc.h>
int main(void) {
 int size;                
 int *A;      
 int *i;
 int sred, k=0, max=0, summa=0;
  randomize();  [COLOR=red]//  ??[/COLOR]
  size=random(151)+50; [COLOR=red]// rand()%151+50[/COLOR]
  printf("size=%d\n",size);
 
  A=(int *)malloc(size*sizeof(int));
 
  printf("Start massiv:\n");
  for (i=A; i<A+size; i++) {
    *i=random(101)-50;  [COLOR=red]// нет в С random [/COLOR]
    printf("%3d ",*i);
    }
 printf("\n");
 
 
  for ([COLOR=red]i=0, i=A[/COLOR]; i<A+size; i++) {
    if ([COLOR=red]*[/COLOR]i<0)
 
       {
        summa=summa + [COLOR=red]*[/COLOR]i; k++;
       }
 if(max>summa){
  summa=max; }
 
  sred=summa/k;
 
 if([COLOR=red]i<0[/COLOR] && i+1>0)  [COLOR=red]//[/COLOR] [COLOR=red]i - указатель, адресс меньше нуля ???[/COLOR]
  { summa=0;
    sred=0;
    k=0;
    }
 }
 
 
   printf("Max average negative sequence%4d", sred);
 
 
 
  free(A);
  getch();
  return 0;
 }
[/quote]

2Belomorkan OK.
12K
18 ноября 2006 года
mortar89
25 / / 17.11.2006
Ольга, спасибо тебе огромное! Ты очень мне помогла!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог