Показать сообщение отдельно

  #18  
Старый 01.04.2007, 23:32
K1T
Познающий
Регистрация: 15.10.2006
Сообщений: 34
Провел на форуме:
304771

Репутация: 7
По умолчанию

Цитата:
Сообщение от MegaBits  
Может кто поможет или подскажет как реализовать на С++?

В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) номер минимального элемента массива;
2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом — все остальные.
#include <stdio.h>
#include <math.h>
#include <alloc.h>
#include <conio.h>
int nomer(int N,int mas[]){ //funkciya naxogdeniya nomera minimalnogo
int min=mas[0],i;
int nomber=0;
for(i=0; i<N;i++)
if(min>mas[i]){min=mas[i]; nomber=i;}//tuta mi i naxodim minimum
return nomber;}
int summa(int N,int mas[]){ //funkciya naxogdeniya summa poebeni ))
int summa=0,i;
for(i=0; i<N;i++){ // tut ona i realizovana
if(mas[i]<0){
i++;
for(;i<N;i++){
// kak ona rabotaet dage ne sprashivai
if(mas[i]<0){break;} //va piwu pod pivom i granic moei fantazii net predelov...
summa+=mas[i];

}}}
return summa;}
void massiv(int N,int mas[]){ //eto funkciya toge 4e to delaet
int *mas2;
int b=0,i;
mas2=(int*)malloc(N*sizeof(int));

for(i=0; i<N;i++)
if(abs(mas[i])<=1){
mas2[b]=mas[i];
b++;}
for( i=0;i<N;i++)
if(abs(mas[i])>1){
mas2[b]=mas[i];
b++;
}
for(i=0;i<N;i++)
printf("mas[%d]=%d\t",i,mas2[i]);
}
void main(){
int N=0;
int *mas,i;

printf("vvedite kol-vo elementov v massive\n");
scanf("%d",&N);
mas=(int*)malloc(N*sizeof(int));
printf("vvedite elementi massiva\n");
for(i=0;i<N;i++)
scanf("%d",&mas[i]);
printf("Nomer minimalnogj=%d\n",nomer(N,mas));
printf("summa poebeni=%d\n", summa(N,mas));
massiv(N,mas);
getch();
}

Последний раз редактировалось K1T; 02.04.2007 в 14:08..
 
Ответить с цитированием