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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 12:18   #1
Студентка педа
Новичок
Джуниор
 
Регистрация: 02.12.2012
Сообщений: 6
По умолчанию Одномерные массивы C/C++

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

Программа работает не так, как нужно. Сортирует не так, как надо и сумму почему-то не правильно считает. А еще нужно добавить в программу условие того, что если первый и второй элемент не отрицательный, то программа не должна считать (программа должна делать break)

Код:
#include "stdafx.h"
#include "locale.h"
#include "conio.h"
#include "math.h"

int _tmain(int argc, _TCHAR* argv[])
{

setlocale(LC_ALL, "Russian");

double M[1000], tmp, Mmin, p;
int i, j, N, num_min;

do{
printf("Введите количество элементов N: ");
scanf("%d", &N);
}while((N>1000)||(N<2));

for(i=0; i<N; i++)
{

printf("Введите элемент M[%i] : ", i+1);
scanf("%lf", &M[i]);

};

printf("\nВаш массив:\n");
for(i=0; i<N; i++)
{
printf("%.1lf ", M[i]);
};


Mmin=M[0];
num_min=0;
for(i=1;i<N;i++)
{
if (Mmin>M[i]) {Mmin=M[i]; num_min=i;}
};
printf("\nМинимальный элемент N %i Mmin=%lf", num_min+1, Mmin);


p=0;
i=-1;
do
{
i++;
}
while(M[i]>=0);

i++;

do{

p+=M[i];
i++;

}while(M[i]>=0);

printf("\n сумма= %lf",p);


printf("\nОтсортированный массив:\n");
for(i=0; i<N;i++)
{
	if (fabs(M[i])<=1) printf("%.1lf ", M[i]);
}

for(i=0; i<N;i++)
{
	if (fabs(M[i])>1) printf("%.1lf ", M[i]);
}


_getch();

return 0;
}

Последний раз редактировалось Stilet; 02.12.2012 в 13:00.
Студентка педа вне форума Ответить с цитированием
Старый 02.12.2012, 13:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
1.) номер минимального элемента массива;
Код:
int NuMin(){int mi=0,i=0;for(;i<1000;i++) mi=(M[i]<M[mi])?i:mi;return mi;}
Цитата:
2.) сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
Код:
double sususu(){
 int i=0;double s=0;
 for(;M[i]>=0;i++);
 for(;M[i]>=0;i++) s+=M[i];
return s;
}
Цитата:
Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом – все остальные.
Код:
void sorto(){
 double a[1000];
 int i=0;
 for(int j=0;j<1000;j++) if(abs(M[i])<=1) a[i++]=M[j];
 for(int j=0;j<1000;j++) if(abs(M[i])>1) a[i++]=M[j];
 for(int j=0;j<1000;j++) M[j]=a[j];
}
Подходят процедуры?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2012, 13:14   #3
Студентка педа
Новичок
Джуниор
 
Регистрация: 02.12.2012
Сообщений: 6
По умолчанию

Все сбрасывается
Студентка педа вне форума Ответить с цитированием
Старый 02.12.2012, 13:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Куда сбрасывается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2012, 19:18   #5
Студентка педа
Новичок
Джуниор
 
Регистрация: 02.12.2012
Сообщений: 6
По умолчанию

Когда запускаешь и вводишь значения, то все сбрасывается
Студентка педа вне форума Ответить с цитированием
Старый 02.12.2012, 19:21   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код в студию. Или трассируй программу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.12.2012, 19:39   #7
Студентка педа
Новичок
Джуниор
 
Регистрация: 02.12.2012
Сообщений: 6
По умолчанию

Код:
#include "stdafx.h"
#include "locale.h"
#include "conio.h"
#include "math.h"

int _tmain(int argc, _TCHAR* argv[])
{

setlocale(LC_ALL, "Russian");

double M[1000], tmp, Mmin, p;
int i, j, N, num_min;

do{
printf("Введите количество элементов N: ");
scanf("%d", &N);
}while((N>1000)||(N<2));

for(i=0; i<N; i++)
{

printf("Введите элемент M[%i] : ", i+1);
scanf("%lf", &M[i]);

};

printf("\nВаш массив:\n");
for(i=0; i<N; i++)
{
printf("%.1lf ", M[i]);
};


Mmin=M[0];
num_min=0;
for(i=1;i<N;i++)
{
if (Mmin>M[i]) {Mmin=M[i]; num_min=i;}
};
printf("\nМинимальный элемент N %i Mmin=%lf", num_min+1, Mmin);


double sususu();
{
 int i=0;double s=0;
 for(;M[i]>=0;i++);
 for(;M[i]>=0;i++) s+=M[i];
return s;
};

printf("\n сумма= %lf",p);



void sorto();
{
 double a[1000];
 int i=0;
 for(int j=0;j<1000;j++) if(abs(M[i])<=1) a[i++]=M[j];
 for(int j=0;j<1000;j++) if(abs(M[i])>1) a[i++]=M[j];
 for(int j=0;j<1000;j++) M[j]=a[j];
};
printf("\nОтсортированный массив:\n");

_getch();

return 0;
}

Последний раз редактировалось Stilet; 02.12.2012 в 20:03.
Студентка педа вне форума Ответить с цитированием
Старый 02.12.2012, 21:00   #8
Студентка педа
Новичок
Джуниор
 
Регистрация: 02.12.2012
Сообщений: 6
По умолчанию

А как записать в программе условие того, что если первый и второй элемент не отрицательный, то программа не должна считать (программа должна делать break)???
Студентка педа вне форума Ответить с цитированием
Старый 02.12.2012, 21:11   #9
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,714
По умолчанию

Проверить значение счетчика после цикла, не видно, правда, где оно ограничено i<N. По-хорошему сообщение выдавать надо "двух отрицательных чисел нет".
P.S. Но можно и ноль оставить)
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 02.12.2012 в 21:17.
MihalNik вне форума Ответить с цитированием
Старый 02.12.2012, 21:32   #10
Студентка педа
Новичок
Джуниор
 
Регистрация: 02.12.2012
Сообщений: 6
По умолчанию

Не подскажите, как это записать на С/С++ ?? ))
Студентка педа вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
одномерные массивы Crazy123 Помощь студентам 0 04.05.2010 13:53
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Одномерные массивы hohol90 Помощь студентам 4 30.11.2009 17:12
C++ Одномерные массивы. rus_rock_no_dead Помощь студентам 1 20.01.2009 15:31