Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Порядковый номер
 
 автор: Oazis   (27.11.2007 в 11:43)   письмо автору
 
 

помогите решить: "Дана непустая последовательность различных целых чисел, за которой следует нуль. Определить порядковый номер и величину наиболь¬шего среди отрицательных чисел этой последовательности"

  Ответить  
 
 автор: Nitrex   (27.11.2007 в 15:15)   письмо автору
 
   для: Oazis   (27.11.2007 в 11:43)
 

А числа все отрицательные?

  Ответить  
 
 автор: cheops   (27.11.2007 в 15:44)   письмо автору
 
   для: Oazis   (27.11.2007 в 11:43)
 

Да, непонятно, имеются положительные числа в последовательности или нет?

  Ответить  
 
 автор: Oazis   (27.11.2007 в 23:16)   письмо автору
 
   для: cheops   (27.11.2007 в 15:44)
 

Положительных

  Ответить  
 
 автор: cheops   (28.11.2007 в 03:25)   письмо автору
 
   для: Oazis   (27.11.2007 в 23:16)
 

Т.е. последовательность содержит и положительные и отрицательные числа?

  Ответить  
 
 автор: Oazis   (28.11.2007 в 07:11)   письмо автору
 
   для: cheops   (28.11.2007 в 03:25)
 

да любые и полож. и отриц.

  Ответить  
 
 автор: cheops   (28.11.2007 в 09:06)   письмо автору
 
   для: Oazis   (27.11.2007 в 11:43)
 

Можно поступить следующим образом
#include <iostream>
using namespace std;

int main()
{
  double arr[8] = {-3.2, 4.1, -5.6, 6.1, -7.3, 8.6, -9.7, 10.1};
  double min = 0;
  for(int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
  {
    if(min > arr[i]) min = arr[i];
  }
  cout << min << endl;
}

  Ответить  
 
 автор: Oazis   (29.11.2007 в 00:53)   письмо автору
 
   для: cheops   (28.11.2007 в 09:06)
 

Всё отлично но нужно чтобы числа задавались пользователем!

  Ответить  
 
 автор: cheops   (29.11.2007 в 03:57)   письмо автору
 
   для: Oazis   (29.11.2007 в 00:53)
 

Тогда можно отталкиваться от следующего варианта
#include <iostream>
using namespace std;

int main()
{
  double arr[100];
  // Читаем строки
  int i;
  for(i = 0; i < 100; i++)
  {
    cout << "Введите строку ";
    cin >> arr[i];
    // Покидаем цикл, если пользователь
    // ввел 0
    if(arr[i] > -0.0001 && arr[i] < 0.0001) break;
  }
  int count = i;

  double min = 0;
  for(i = 0; i < count; i++)
  {
    if(min > arr[i]) min = arr[i];
  }
  cout << min << endl;
}

PS Использование STL допускается в программе - или всё требуется делать классическими средствами?

  Ответить  
 
 автор: oradev   (29.11.2007 в 05:43)   письмо автору
 
   для: cheops   (29.11.2007 в 03:57)
 

А граница массива известна заранее?

  Ответить  
 
 автор: Oazis   (29.11.2007 в 06:54)   письмо автору
 
   для: oradev   (29.11.2007 в 05:43)
 

Для cheops:спасибо тебе, но немог бы ты пример сделать не для "с" простой, а для "с expres" и пожалуйста класическим способом границы массива не известны

  Ответить  
 
 автор: cheops   (29.11.2007 в 07:14)   письмо автору
 
   для: Oazis   (29.11.2007 в 06:54)
 

> не для "с" простой, а для "с expres"
Под "с expres" что подразумевается?
> пожалуйста класическим способом границы массива не известны
Т.е. стандартную библиотеку STL использовать нельзя?

  Ответить  
 
 автор: Oazis   (29.11.2007 в 11:03)   письмо автору
 
   для: cheops   (29.11.2007 в 07:14)
 

нет можно но чтоб было как бы по проще. Для изучения программирования используется Microsoft Visual C++ 2005 Express Edition

  Ответить  
 
 автор: cheops   (29.11.2007 в 16:16)   письмо автору
 
   для: Oazis   (29.11.2007 в 11:03)
 

Постараюсь завтра отладить вариант именно для Microsoft Visual C++ 2005 Express Edition.

  Ответить  
 
 автор: Oazis   (13.12.2007 в 01:04)   письмо автору
 
   для: cheops   (29.11.2007 в 16:16)
 

A можно вместо cout сделать через printf

  Ответить  
 
 автор: cheops   (13.12.2007 в 07:04)   письмо автору
 
   для: Oazis   (13.12.2007 в 01:04)
 

Можно поступить следующим образом
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int main()
{
  double arr[100];
  char input[80];
  int i;
  for(i = 0; i < 100; i++)
  {
    printf("%s""Введите число ");
    // Читаем введённую строку
    fgets(input, 80, stdin);
    // Преобразуем её в число с плавающей
    // точкой
    arr[i] = atof(input);
    // Покидаем цикл, если пользователь
    // ввел 0
    if(arr[i] > -0.0001 && arr[i] < 0.0001) break;
  }
  int count = i;

  // Ищем минимальное отрицательное значение
  double min = 0;
  for(i = 0; i < count; i++)
  {
    if(min > arr[i]) min = arr[i];
  }
  // Выводим результат
  printf("%f", min);
}

  Ответить  
 
 автор: cheops   (13.12.2007 в 07:05)   письмо автору
 
   для: Oazis   (29.11.2007 в 11:03)
 

>нет можно но чтоб было как бы по проще. Для изучения программирования используется
>Microsoft Visual C++ 2005 Express Edition
На самом деле и предыдущи вариант тоже будет работать, если вы создадите проект следующим образом File->New->Project->General->Empty Project.

  Ответить  
 
 автор: Oazis   (16.12.2007 в 11:11)   письмо автору
 
   для: cheops   (13.12.2007 в 07:05)
 

неработает программа выдает ошибку:error C2871: 'std' : a namespace with this name does not exist

  Ответить  
 
 автор: cheops   (16.12.2007 в 16:06)   письмо автору
 
   для: Oazis   (16.12.2007 в 11:11)
 

Вы точно создаёте проект при помощи File->New->Project->General->Empty Project?

  Ответить  
 
 автор: Oazis   (17.12.2007 в 10:13)   письмо автору
 
   для: cheops   (16.12.2007 в 16:06)
 

нет вот так: File->New->Project->Win32->Empty proekt
Она полюбому не работает там ошибка

  Ответить  
 
 автор: cheops   (17.12.2007 в 16:01)   письмо автору
 
   для: Oazis   (17.12.2007 в 10:13)
 

Win32 не поддерживает консоль (эти проекты обслуживают только графические режимы) - необходимо выбирать General.

  Ответить  
 
 автор: Oazis   (18.12.2007 в 06:24)   письмо автору
 
   для: cheops   (17.12.2007 в 16:01)
 

я и чеоез general пробовал в программе ошибка

  Ответить  
 
 автор: cheops   (18.12.2007 в 09:18)   письмо автору
 
   для: Oazis   (18.12.2007 в 06:24)
 

Приведите сообщение об ошибке?

PS Может мой проект выложить - попробуйте с него запустить программу?

  Ответить  
 
 автор: Oazis   (19.12.2007 в 06:32)   письмо автору
 
   для: cheops   (18.12.2007 в 09:18)
 

выдает ошибку:error C2871: 'std' : a namespace with this name does not exist

  Ответить  
 
 автор: Oazis   (22.12.2007 в 13:29)   письмо автору
 
   для: Oazis   (19.12.2007 в 06:32)
 

нельзя ли программу пустить без использования using namespace std; а если нет то как исправить ошибку 'std' : a namespace with this name does not exist

  Ответить  
 
 автор: cheops   (22.12.2007 в 16:38)   письмо автору
 
   для: Oazis   (22.12.2007 в 13:29)
 

Если вы действительно используете Microsoft Visual C++ 2005 Express Edition и выберите File->New->Project->General->Empty Project вместо File->New->Project->Win32->Empty proekt - у вас всё заработает. Дело в том, что win32 - это оконное приложение, а вам нужно консольный проект, чтобы запустить приведённую выше программу.

  Ответить  
 
 автор: Oazis   (23.12.2007 в 07:27)   письмо автору
 
   для: cheops   (22.12.2007 в 16:38)
 

яиспользую так вы указали но программа выдает выше указанную ошибку

  Ответить  
 
 автор: cheops   (23.12.2007 в 07:55)   письмо автору
99.3 Кб
 
   для: Oazis   (23.12.2007 в 07:27)
 

Воспользуйтесь проектом во вложении. Похоже действительно при использовании C-библиотек Visual Studio не разрешает пользоваться стандартным пространством имён (хотя вообще-то это противоречит стандарту C++).

  Ответить  
 
 автор: Oazis   (23.12.2007 в 13:15)   письмо автору
 
   для: cheops   (23.12.2007 в 07:55)
 

а ее ни как нельзя сделать чтобы она так работала

  Ответить  
 
 автор: cheops   (24.12.2007 в 04:37)   письмо автору
 
   для: Oazis   (23.12.2007 в 13:15)
 

Так, это как? Во вложении имеется готовый исполняемый файл - он не подходит?

  Ответить  
 
 автор: Oazis   (24.12.2007 в 10:29)   письмо автору
 
   для: cheops   (24.12.2007 в 04:37)
 

а что дает вот эта функция

arr[i] = atof(input);

И что такое count

  Ответить  
 
 автор: graphoman   (24.12.2007 в 10:58)   письмо автору
 
   для: Oazis   (24.12.2007 в 10:29)
 

Это функция преобразует символьный массив в вещественное число. Т.е, я так понял, изначально данные вводятся в виде строк, а затем преобразуются в числа.

  Ответить  
 
 автор: Oazis   (24.12.2007 в 12:59)   письмо автору
 
   для: graphoman   (24.12.2007 в 10:58)
 

что такое count

  Ответить  
 
 автор: cheops   (24.12.2007 в 17:00)   письмо автору
 
   для: Oazis   (24.12.2007 в 12:59)
 

Количество введённых пользователем чисел.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования