Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Heinz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

С одномерным массивом, состоящим из n вещественных элементов, произвести следующие операции:
1) найти максимальный элемент массива;
2) вычислить сумму элементов массива, расположенных до последнего положительного элемента;
3) сжать массив, удалив из него все элементы, модуль которых находится в интервале (а,b). Освободившиеся в конце массива элементы заполнить нулями.
Проблемы: Не работает ручной ввод : ( Так и не понял в чём ошибка.
Иногда отрицательные числа в новом массиве заполняются нулями.
 
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <stdlib.h>
 
#define max 5
 
void zip(float mas[],int n, float a,float b)
{
  for(int i=0;i<n;i++)
  {
    if (mas[i]>=a || mas[i]<=b)
    {
      for (int q=i;q<n-1;q++)
      mas[q]=mas[q+1];
      mas[n-1]=0;
    }
    else i++;
  }
}
 
float sum(float mas[],int n)
{
  for (int i=n;i>=0;i--)
      if (mas[i]>0)
      break;
 
  float sm=0;
  for (int j=0;j<i;j++)
      sm+=mas[j];
  return sm;
}
 
float maxmas(float mas[],int n)
{
  float mx;
  mx=mas[0];
  for (int i=0;i<=n;i++)
      if (mx<mas[i]) mx=mas[i];
  return mx;
}
 
void main()
{
  clrscr();
  fflush(stdin);
  randomize();
 
  printf("vvodite sami? [y/n]\n->");
  char yn;
  int m=0;
  float mas[100];
 
  int res=scanf("%c",&yn);
  if (res==0)
  {
    printf("Neverno");
    if (!getch())
       getch();
    exit(1);
  }
 
  if (yn!='n' && yn!='y')
  {
    printf("Input 'y' or 'n'");
    if (!getch())
       getch();
    exit(1);
  }
  if (yn=='n')
  {
    for (int i=0;i<=max;i++)
      mas[i]=10-random(2000)/100.0;
    m=max;
  }
  if (yn=='y')
  {
    printf("vvedite kol-vo el-tov (0,%d)\n->",max);
    int m=0;
    res=scanf("%d",&m);
    if (res==0)
    {
      printf("Neverno");
      if (!getch())
     getch();
      exit(1);
    }
    if (m>max || m<0)
    {
      printf("Need 0<x<%d",max);
      if (!getch())
     getch();
      exit(1);
    }
 
 
    for (int i=0;i<m;i++)
    {
    printf("vvedite el-t %d\n->",i);
    res=scanf("%f",mas[i]);
    if (res==0)
    {
      printf("Neverno");
      if (!getch())
     getch();
      exit(1);
    }
    }
  }
 
  printf("\n\n mas:");
  for (int i=0;i<m;i++)
  printf("%.2f ",mas[i]);
 
  float a,b;
  printf("\nvvedite niz predel\n->");
  res=scanf("%f",&a);
  if (res==0)
  {
    printf("Neverno");
    if (!getch())
       getch();
    exit(1);
  }
  printf("\nvvedite verh predel\n->");
  res=scanf("%f",&b);
  if (res==0)
  {
    printf("Neverno");
    if (!getch())
       getch();
    exit(1);
  }
 
  printf("\nmax=");
  printf("%.2f",maxmas(mas,m));
  printf("\nsum until last positive el-t=");
  printf("%.2f",sum(mas,m));
  printf("\n zip=");
  zip(mas,m,a,b);
  for (i=0;i<m;i++)
    printf("%.2f ",mas[i]);
 
 
 
  if (!getch())
     getch();
}
 
 
 
 
Написать функцию, которая вычисляет значение ab, не используя функцию pow(a,b). Число a может быть любыми положительными числом. b – неотрицательное целое число.
 
double p(double a,double b)
{
 
  double r=1;
 
  for (int i=1;i<=b;i++)
   r=r*a;
 
  if (b<1 || b>0)
  {
    r=exp(b*log(a));
  }
  return r;
}

Всего записей: 3 | Зарегистр. 03-09-2006 | Отправлено: 09:55 03-09-2006 | Исправлено: ShIvADeSt, 02:26 04-09-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru