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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 21:16   #1
~Sл@\/яH~
Пользователь
 
Регистрация: 19.11.2011
Сообщений: 35
Сообщение Типы переменных

Добрый вечер. Помогите пожалуйста.


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


Код:
#include <iostream>
#include <conio.h>
#include <math.h>
#include <windows.h>
using namespace std;
const int n=10;            
int main()
{
  SetConsoleCP (1251);
  SetConsoleOutputCP (1251);
  float X[n],imin,s;
  int i,j,k1,k2;
  cout<<"Введите элементы массива: ";
  for (i=0;i<n;i++)
	  cin >> X[i];
  imin=0;
  for (i=0;i<n;i++)
	  if (X[i]<X[imin])
		  imin = i;
  cout<<"Номер минимального элемента массива: "<<imin<<'\n';
  k1 = 0;
  k2 = 0;
  for (i=0;i<n;i++)
	  if (X[i]<0)
		if (k1!=0)
	  {
	k2 = i;
	break;
	  }
	  else
		  k1 = i;
  
  s = 0;
  for (i=k1+1;i<k2;i++)
	  s = s + X[i];
  cout<<"Сумма элементов между первым и вторым отрицательным элементам= "<<s<<'\n'; 
  
  float mas2[n];
  for (i=0;i<n;i++)
	  mas2[i] = X[i];
  int k = -1;
  for (i=0;i<n;i++)
	  if (abs(mas2[i]) <= 1)
	{
	k++;
	  X[k] = mas2[i];
	}
	for (i=0;i<n;i++)
	  if (abs(mas2[i]) >= 1)
	{
	k++;
	  X[k] = mas2[i];
	}
	cout<<"Преобразованный массив: "<<'\n';
  for (i=0;i<n;i++)
	  cout<<X[i]<<' ';
  getch ();
  return 0;
}
По задаче данн массив из вещественных чисел. Visual Studio выдает ошибку тут:
Код:
 if (X[i]<X[imin])
Я в принципе знаю почему он ругается. Как можно изменить, что бы программа заработала с вещественными элементами
~Sл@\/яH~ вне форума Ответить с цитированием
Старый 20.12.2011, 21:54   #2
TranceSmile
Смайлик :)
Форумчанин
 
Аватар для TranceSmile
 
Регистрация: 12.12.2010
Сообщений: 445
По умолчанию

Ну ошибка потому что переменная imin объявлена как float а должна быть как int
А вот по второй ошибке понять не могу почему функция abs не принимает типа float?
Разобрался abs() меняем на fabs()
Самый перспективный framework Yii (c)

Последний раз редактировалось TranceSmile; 20.12.2011 в 21:59.
TranceSmile вне форума Ответить с цитированием
Старый 20.12.2011, 22:02   #3
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

abs принимает long и int: ссылка
fabs - float, double, long double: ссылка
8Observer8 вне форума Ответить с цитированием
Старый 20.12.2011, 22:45   #4
~Sл@\/яH~
Пользователь
 
Регистрация: 19.11.2011
Сообщений: 35
По умолчанию

Спасибо огромное
~Sл@\/яH~ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C/C++ Типы переменных ISV-777 Помощь студентам 3 01.11.2010 17:50
Перевод переменных в различные типы! DarkMaks93 Общие вопросы Delphi 4 25.07.2009 22:01
Типы даннных в сообветствиями с типом переменных бедный_студент Помощь студентам 28 02.05.2009 01:52