Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2011, 15:45   #1
яна11
Новичок
Джуниор
 
Регистрация: 18.04.2011
Сообщений: 1
Восклицание нужно упорядочить массив

B одномерном массиве, состоящих из n вещественных элементов, вычислить:
1)номер минимального элемента массива;
2)сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
3)Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом — все остальные.

подскажите, может можно как-то исправить программу, не получается 3 пункт, первые 2 работают

Код:
#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;
}

Последний раз редактировалось яна11; 24.04.2011 в 19:58. Причина: уточнение задания
яна11 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить массив по невозрастанию! Cyber Помощь студентам 2 23.09.2010 09:31
Упорядочить одномерный массив указателей на строки DarkDante Общие вопросы C/C++ 1 02.05.2010 15:53
одномерный массив. упорядочить serj-07 Помощь студентам 11 18.01.2010 01:28
как упорядочить массив?? siemdi Общие вопросы C/C++ 3 18.01.2010 00:51
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06