Форум программистов, компьютерный форум CyberForum.ru

Упорядочить целые числа в строке по убыванию - C++

Восстановить пароль Регистрация
 
*Оля*
 Аватар для *Оля*
1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 48
10.12.2010, 10:34     Упорядочить целые числа в строке по убыванию #1
Задана строка, содержащая вещественные числа (максимум 20 чисел).
Упорядочить целые числа в строке по убыванию.

подскажите пожалуйста как вводить числа и как определить целое число или нет?
спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2010, 10:34     Упорядочить целые числа в строке по убыванию
Посмотрите здесь:

C++ Дана матрица m*n. Необходимо упорядочить все числа в порядке возрастания в каждой строке.
Упорядочить целые числа в строке по возрастанию. C++
C++ Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию.
Массив: Найти первый максимум в этом массиве, а затем все числа до этого элемента упорядочить по возрастанию, а после — по убыванию. C++
В исходной строке, содержащей перечисленные через пробел слова, найти целые положительные числа и составить из них новую строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.12.2010, 10:51     Упорядочить целые числа в строке по убыванию #2
Цитата Сообщение от *Оля* Посмотреть сообщение
как вводить числа
C++
1
2
3
4
#include <iostream>
...
double val;
std::cin >> val;
C
1
2
3
4
#include <stdio.h>
...
double val;
scanf("%lf", &val);
Цитата Сообщение от *Оля* Посмотреть сообщение
как определить целое число или нет?
C++
1
2
3
4
#include <cmath>
...
if ( val == floor(val) )
  // целое число
*Оля*
 Аватар для *Оля*
1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 48
10.12.2010, 10:56  [ТС]     Упорядочить целые числа в строке по убыванию #3
Цитата Сообщение от easybudda Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
...
 
...
double val;
scanf("%lf", &val);[/C]
 
 
  // целое число

а так же вроде введется только одно число, а не строка с числами?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.12.2010, 11:01     Упорядочить целые числа в строке по убыванию #4
Цитата Сообщение от *Оля* Посмотреть сообщение
введется только одно число
ну да
Цитата Сообщение от *Оля* Посмотреть сообщение
а не строка с числами?
а "строка с числами" - это текстовая строка, или всё-таки одномерный массив?
*Оля*
 Аватар для *Оля*
1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 48
10.12.2010, 11:06  [ТС]     Упорядочить целые числа в строке по убыванию #5
Цитата Сообщение от easybudda Посмотреть сообщение
ну да

а "строка с числами" - это текстовая строка, или всё-таки одномерный массив?

текстовая строка, нужно использовать функцию преобразования строки в вещественное число.
только вводится по условию не одно число, поэтому я не понимаю как это сделать
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.12.2010, 11:10     Упорядочить целые числа в строке по убыванию #6
на всякий случай...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
//...
std::string str;
std::cout << "String: ";
std::getline(std::cin, str);
std::istringstream ist(str);
double val;
std::vector<double> vec;
while ( ist >> val )
  vec.push_back(val);
// vec - массив введённых чисел
*Оля*
 Аватар для *Оля*
1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 48
16.12.2010, 23:34  [ТС]     Упорядочить целые числа в строке по убыванию #7
все равно не могу никак понять. ну вот если вводим вот так:
C
1
2
3
4
5
6
7
8
9
{char str[6];
float a[20];
int i=0;
    while(1) {
    printf("vvedite cislo"); gets(str);
    if (str[0]==0) break;
    float c;
    sscanf(str,"%lf",&c);
     if ... и здесь должно быть условие, что число целое
а дальше что делать? создавать массив с этими числами и там сортировать или как? что-то я совсем запуталась в этой задаче.

видела почти такую же тему, но решение не поняла(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 00:52     Упорядочить целые числа в строке по убыванию
Еще ссылки по теме:

C++ Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
C++ Упорядочить столбцы матрицы по убыванию элементов в k строке
C++ В массиве A(n) удалить все отрицательные числа ,затем массив упорядочить по убыванию

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.12.2010, 00:52     Упорядочить целые числа в строке по убыванию #8
Цитата Сообщение от *Оля* Посмотреть сообщение
Задана строка, содержащая вещественные числа (максимум 20 чисел).
Упорядочить целые числа в строке по убыванию.
Это в смысле - те числа, у которых дробная часть нулевая, между собой устаканить, всё остальное точно на своих местах оставить? Замороченно получится... Вы задание уточните. А пока вот: читает числа типа double из строки, сортирует, выводит...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
 
int desc_cmp(const void * a, const void * b ){
    double delta = *(double*)b - *(double*)a;
    return ( delta < 0.0 ) ? -1 : ( delta > 0.0 ) ? 1 : 0;
}
 
#define MAX_NUMBERS 20
#define DELIM " \t\n"
 
int main(void){
    char buf[BUFSIZ], * p, * tail;
    double arr[MAX_NUMBERS];
    int cnt, i;
    
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        perror("fgets");
        exit(1);
    }
    
    for ( cnt = 0, p = strtok(buf, DELIM); ( cnt < MAX_NUMBERS ) && ( p != NULL ); ++cnt, p = strtok(NULL, DELIM) ){
        errno = 0;
        arr[cnt] = strtod(p, &tail);
        if ( errno || *tail ){
            fprintf(stderr, "Wrong string format!\n");
            exit(1);
        }
    }
    
    if ( ! cnt ){
        fprintf(stderr, "Empty array!\n");
        exit(1);
    }
    
    qsort(arr, cnt, sizeof(double), desc_cmp);
    
    printf("Result: ");
    for ( i = 0; i < cnt; ++i )
        printf("%.2f ", arr[i]);
    printf("\n");
    
    exit(0);
}
Yandex
Объявления
17.12.2010, 00:52     Упорядочить целые числа в строке по убыванию
Ответ Создать тему
Опции темы

Текущее время: 12:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru