|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Как ограничить массив? |
|
C/C++ - Как ограничить массив?
|
Новый участник Сообщения: 6 |
Профиль | Отправить 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 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать
|
------- Отправлено: 13:37, 03-07-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|