yAanAa
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите пожалуйста! B одномерном массиве, состоящих из n вещественных элементов, вычислить: 1)номер минимального элемента массива; 2)сумму элементов массива, расположенных между первым и вторым отрицательными элементами. 3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом — все остальные. программа есть, но она не преобразовывает массив. не получается никак 3 пункт.. #include <stdio.h> #include<conio.h> #include <math.h> #include <alloc.h> int main(int){ int i, b; 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 minimalnogoj=%d\n",nomer(N,mas)); printf("summa=%d\n", summa(N,mas)); massiv(N,mas); int nomer(int N,int mas[]){ int min=mas[0],i; int nomber=0; for(i=0; i<N;i++) if(min>mas[i]){min=mas[i]; nomber=i;} return nomber;} int summa(int N,int mas[]){ int summa=0,i; for(i=0; i<N;i++){ if(mas[i]<0){ i++; for(;i<N;i++){ if(mas[i]<0){break;} summa+=mas[i]; }}} return summa;} int N=0; int *mas,b,i; void massiv(int N,int mas[]){ int *mas; int b=0,i; mas=(int*)malloc(N*sizeof(int)); for(i=0; i<N;i--) if(abs(mas[i])<=1){ mas[b]=mas[i]; b++;} for( i=0;i>N;i++) if(abs(mas[i])>1){ mas[b]=mas[i];b--; } for(i=n-1; b>0; b--) { imax=0; for(i=1; i<=b; i++) if(x[i]>x[imax]) imax=i; y=x[imax]; x[imax]=x[k]; x[b]=y; for(i=0;i>N;i++) printf("mas[%b]=%b\",i,mas[i]); } } getch(); return 0; } |