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

Форум C++

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

 

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

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

тема: Си. Запись ввода с клавиатуры в массив
 
 автор: hell_riser   (18.10.2007 в 23:53)   письмо автору
 
 

Здравствуйте.
Помогите разобраться(решить) с задачей.
Пользователь вводит некие числа предположительно тип float разделяя их пробелом.
Нужно загнать этот ввод в одномерный массив и потом определить минимальное и максимальное значения массива. Тип массива соответственно float, размер произвольный.

P.S. Прошу не судить за тупость Си только начал пытаться осваивать и то заочно.

  Ответить  
 
 автор: cheops   (19.10.2007 в 14:17)   письмо автору
 
   для: hell_riser   (18.10.2007 в 23:53)
 

А обязательно пробелом разделять - символ перевода строки не пойдёт?

  Ответить  
 
 автор: hell_riser   (19.10.2007 в 14:40)   письмо автору
 
   для: cheops   (19.10.2007 в 14:17)
 

В принципе, в условии не оговаривается чем будет разделяться. Пробел я указал просто для примера

  Ответить  
 
 автор: cheops   (19.10.2007 в 16:26)   письмо автору
 
   для: hell_riser   (19.10.2007 в 14:40)
 

Допускается ли использование библиотеки STL? Следующая программа принимает числа типа float до тех пор, пока не будет введено отрицательное число и выводит максимальное и минимальное значение
#include <iostream>
#include <set>
using namespace std;

int main()
{
  // Множество
  multiset<float> coll;
  float input;  

  try
  {
    // Читаем строки из стандартного потока
    while(true)
    {
      cout << "Введите число ";
      cin >> input;
      if(input < 0) break;
      coll.insert(input);
    }

    // Выводим минимальный элемент коллекции
    cout << "Min = " << *coll.begin() << "\n";
    // Выводим максимальный элемент коллекции
    cout << "Max = " << *(--coll.end()) << "\n";
  }
  catch(bad_alloc)
  {
    cout << "Не удалось выделить память под коллекцию\n";
  }

  return 0;
}

  Ответить  
 
 автор: hell_riser   (19.10.2007 в 17:58)   письмо автору
 
   для: cheops   (19.10.2007 в 16:26)
 

Вообще-то мне бы надо в С, а не С++ прошу прощения что сразу не сказал.
На сколько я смог понять вашь код, то у вас ввод и запись в массив происходят в цикле
т.е. по одному значению за раз. А можно ли строку вида 02,01 08,01 15,78 ,,,,,, загнать в массив.

  Ответить  
 
 автор: hell_riser   (20.10.2007 в 02:27)   письмо автору
 
   для: hell_riser   (19.10.2007 в 17:58)
 

Нашёл тут в одном из постов такой код:

#include <iostream>
using namespace std;

int main()
{
 char input[80];
 char current[80];
 int i, j;

 cout << "Введите строку ";
 fgets(input, 80, stdin);

 for(i = 0; i < strlen(input); i++)
 {
  for(j = 0; input[i] != ' ' && input[i]; j++, i++)
  {
   current[j] = input[i];
  }
  current[j] = '\0';
  cout << current << endl;
 }
}

вроде похоже на разбиение строки по некоему разделителю в данном случае как раз пробел и запись в массив. Как бы его в С перевести(при условии что я правильно понял этот код).

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

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