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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
*Оля*
1 / 1 / 0
Регистрация: 18.04.2010
Сообщений: 48
#1

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

10.12.2010, 10:34. Просмотров 977. Ответов 7
Метки нет (Все метки)

Задана строка, содержащая вещественные числа (максимум 20 чисел).
Упорядочить целые числа в строке по убыванию.

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

Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию. - C++
Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию. должно выглядеть что то...

Упорядочить целые числа в строке по возрастанию. - C++
Помогите пожалуйста с задачей на СИ: Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить числа в строке по возрастанию....

Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр - C++
Здравствуйте. На форуме есть код подобный, но по возрастанию сумм элементов. Как мне подправить код, чтобы было "по убыванию произведений...

Упорядочить в строке слова по убыванию их длины. - C++
Дана строка символов, состоящий из отдельных слов, разделенных пробелом. Упорядочить слова по длине (по убыванию) и вывести на печать.

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

В массиве A(n) удалить все отрицательные числа ,затем массив упорядочить по убыванию - C++
В массиве A(n) удалить все отрицательные числа ,затем массив упорядочить по убыванию.

7
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
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 / 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]
 
 
  // целое число

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

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

текстовая строка, нужно использовать функцию преобразования строки в вещественное число.
только вводится по условию не одно число, поэтому я не понимаю как это сделать
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
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 / 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 ... и здесь должно быть условие, что число целое
а дальше что делать? создавать массив с этими числами и там сортировать или как? что-то я совсем запуталась в этой задаче.

видела почти такую же тему, но решение не поняла(
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
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);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2010, 00:52
Привет! Вот еще темы с ответами:

Упорядочить массив вещественных чисел по убыванию модулей элементов и найти два числа по условию - C++
Программа была написана для другой похожей задачи, помогите подстроить под следующие условия. &quot;В одномерном массиве, состоящем из n...

Массив: Найти первый максимум в этом массиве, а затем все числа до этого элемента упорядочить по возрастанию, а после — по убыванию. - C++
Дан массив из n целых чисел. Найти первый максимум в этом массиве, а затем все числа до этого элемента упорядочить по возрастанию, а после...

В исходной строке, содержащей перечисленные через пробел слова, найти целые положительные числа и составить из них новую строку - C++
Задание: В исходной строке, содержащей перечисленные через пробел слова, найти целые положительные числа и составить из них новую...

Дана матрица m*n. Необходимо упорядочить все числа в порядке возрастания в каждой строке. - C++
Дана матрица m*n. Необходимо упорядочить все числа в порядке возрастания в каждой строке. Вывести результат до и после изменения.


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
17.12.2010, 00:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru