Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как ограничить массив?

Ответить
Настройки темы
C/C++ - Как ограничить массив?

Аватара для Anastasiya9kmmr

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


В общем надо ограничить промежуток а б а не получается если что вот задание.
Составить программу, формирующую одномерный массив, состоящий из N вещественных элементов. Найти максимальный элемент массива и его индекс. Сжать массив, удалив из него элементы, модуль которых находится в интервале [a, b] (задаваемого пользователем). Освободившиеся в конце массива элементы заменить нулями. Вычислить сумму элементов массива, расположенных до последнего положительного элемента.
А это код. Но проблема что пользователь не имеет возможности ввести интервал.
Код: Выделить весь код
#include<stdio.h>
#include<math.h>
#include<locale.h>
#define MAX "Индекс максимального  элемента равен: "
#define AL printf("[%d]=",i)
#define SUM "Сумма элементов массива, расположенных до последнего положительного элемента: "
#define SORTARR "Отсортированный массив"

printf("N не отрицательное ");
scanf("%d",&n1); 
printf("N отрицательное ");
scanf("%d",&n2); 
//максималочка
int searchMAX(float *array)
{
int number,i,j;
float max;
for(i=0,max=array[i],j=1,number=i;i<N1&&j<N1;i>N2&&j>N2,i++,j++)
if(max<array[j])
{
max=(array[j]);
number=j;
}
return(number);
}
 
//сум
int sum_after(float *array){
int i,ok=-1;
float sum=0.0;
for(i=0;i<N;i++){
   if(array[i]<0 && !(ok))
    {
    ok=1;
    continue;
   }
    if(ok) sum+=fabs(array[i]);}
return(sum);
}
//предел
void arraymsort(float *array, float b, float a, int size)
{
    int i,j,k;
for(i=0;i<size;i++)
{
  if(array[i]<=a && array[i]>=b) {
            k=i;
        for(j=i+1;j<size;j++)
            {
            array[i]=array[j];
            i++;
            if(i==(size-1)) array[i]=0;
            }i=k-1;}}
        for(i=0;i<size;i++)
            printf("[%d]=%2.0f\t",i,*(array+i));
}
 
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL,".1251");
float array[N], sum;
int i;
for(i=0;i<N1,i>N2;i++)
    {
AL;
scanf("%f",array+i);
}
printf("%s",MAX);
//номера макс
int h=searchMAX(array);
printf("%d\n",h);
//сумма 
printf("%s",SUM);
sum=sum_after(array);
printf("%2.2f\n",sum);
// сжат
printf("%s\n",SORTARR);
arraymsort(array,5,10,N);
return 0;
}

Отправлено: 10:25, 03-07-2019

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4462
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


  1. Код
    Код: Выделить весь код
    printf("N не отрицательное ");
    scanf("%d",&n1); 
    printf("N отрицательное ");
    scanf("%d",&n2);
    Должен быть расположен внутри функции main (){}
    Т.к. сейчас он находится неизвестно где.
  2. Не забывайте, что C++ регистрочувствительный.
    Следовательно n1 и N1 -- это разные вещи.
    Обратите внимание на регистр вводимых переменных.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 13:37, 03-07-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как ограничить массив?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Firefox 60.0: как прицепить BitComet или аналог и как вообще ограничить ширину канала Yewgeniy Хочу все знать 3 17-06-2018 16:31
Delphi - Как записать массив в поле ClientDataSet? ALI Программирование и базы данных 4 01-11-2008 11:24
как восстановить RAID массив? Turman Хочу все знать 8 18-08-2008 03:30
массив $_GET как его обработать darksmoke Вебмастеру 11 29-03-2008 00:53
Как заставить систему увидеть динамический массив? Pit_bul Microsoft Windows NT/2000/2003 2 02-08-2006 12:18




 
Переход