|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Найти произведение между минимальным и максимальным элементом массива |
|
C/C++ - Найти произведение между минимальным и максимальным элементом массива
|
Новый участник Сообщения: 10 |
#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<locale.h> void main () { setlocale(LC_ALL,"rus"); int i,n,min_index,max_index,k; float *ptr,sum=0,p=1,max,min; printf("Пожалуйста,введите размерность массива\n"); scanf("%d",&n); ptr=(float*)malloc(n*sizeof(float)); if(ptr==NULL) { printf("Не хватает свободной памяти"); return; } for(i=0;i<n;i++) { printf("Введите элемент массива[%d]\n",i+1); scanf("%f",ptr+i); } for(i=0;i<n;i++) { if(*(ptr+i)<0) sum+=*(ptr+i); } printf("Сумма отрицательных элементов массива = %.2f\n",sum); max=*(ptr+i); k=0; for(i=0;i<n;i++) { if (*(ptr+i)>max) { max=*(ptr+i); k=i; } } max_index=k+1; printf("Индекс максимального %d\n",max_index); i=0; min=*(ptr+i); min_index=i; for(i=0;i<n;i++) if (*(ptr+i)<min) { min=*(ptr+i); min_index=i; } printf("Индекс минимального %d\n",min_index+1); if (min_index>max_index) { p=max_index; max_index=min_index; min_index=p; } p=1; if (min_index+1==max_index) p=0; else for (i=min_index;i<max_index;i++) { p*=*(ptr+i); } printf("Произведение элементов массива между минимальным и максимальным элементом равна = %.2f\n",p); free(ptr); ptr=0; } |
|
Отправлено: 10:36, 09-11-2014 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Можете написать значения при которых происходит ошибка?
Два раза вводил значения в массив на 5 "мест" всё отработало нормально, индексы показало верные, произведение тоже. Пара замечаний, код "причешите", не экономьте отступами\пробелами. Лучше выводить значения, например: 2 * 6 * 8 * 9 = столько-то Ну и с массивом немножко визуальнее легче воспринималось бы вот так Введите элемент массива[1] = 4 Введите элемент массива[2] = 2 Введите элемент массива[3] = 2 ... Текущая кодовая страница: 1251 Пожалуйста,введите размерность массива 8 Введите элемент массива[1] 4 Введите элемент массива[2] 2 Введите элемент массива[3] 2 Введите элемент массива[4] 6 Введите элемент массива[5] 8 Введите элемент массива[6] 9 Введите элемент массива[7] 5 Введите элемент массива[8] 7 Сумма отрицательных элементов массива = 0,00 Индекс максимального 6 Индекс минимального 2 Произведение элементов массива между минимальным и максимальным элементом равна = 1728,00 Пожалуйста,введите размерность массива |
------- Отправлено: 03:41, 15-11-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Найти ошибку в коде массива | artyomartemyev96 | Программирование и базы данных | 3 | 24-10-2014 09:23 | |
C/C++ - [решено] Найти ошибку в коде массива | artyomartemyev96 | Программирование и базы данных | 1 | 12-10-2014 20:52 | |
будет ли работать E5700 со сколотым элементом? | kokos76 | Процесcоры | 3 | 31-07-2012 15:24 | |
C/C++ - Найти обращение матрицы с помощью разложения на произведение двух треугольных матриц | Monomah174 | Программирование и базы данных | 5 | 14-02-2011 19:01 | |
C/C++ - [решено] Найти среднее геометрическое элементов массива А (С++) | kmi567 | Программирование и базы данных | 2 | 10-12-2010 05:06 |
|