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

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

Войти
Регистрация
Восстановить пароль
 
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
#1

Количество слов и цифр в строке, и последовательность - C++

16.01.2011, 19:48. Просмотров 583. Ответов 8
Метки нет (Все метки)

Помогите, осталось решить всего 2 задачи из 10 заданных))
Нужно дописать решение, но чтобы его принимал компилятор BORLANDC, потому что сдаем пока только на нём.
В первой задание:
Сколько слов и цифр в строке?
Написал, как найти количество слов, но как вычислите количество цифр?
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
//254(3).cpp
#include <stdio.h>
#include <conio.h>
 
enum {OUT, IN};
 
int main(void)
{
   int c, nw, state;
   clrscr();
   state = OUT;
   nw=0;
   printf("Введите текст: ");
   while( (c=getchar()) != '\n')
      if(c==' ' || c=='.' || c== '\t') {
     state = OUT;
      } else if(state==OUT) {
     state = IN;
     nw++;
      }
   printf("В тексте %d слов.\n", nw);
   getch();
   return 0;
}
Во второй:
Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789).
С этой сколько предложенных вариантов ни пробовал, не получается.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Количество слов и цифр в строке, и последовательность (C++):

Подсчитать количество букв, слов и цифр в строке - C++
Во введенной строке символов подсчитать количество букв (отдельно русского и английского алфавитов), цифр, слов, предложений. (Считать, что...

В заданной строке определить количество слов и цифр - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; int main () { string str; ...

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

Cтрока: Определить количество средних слов в строке и какое из слов начинается на большую по коду букву - C++
Определить количество средних слов в строе и какое из слов начинается на большую по коду букву. Напишите плз код данной программы...

Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес - C++
Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое...

В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). - C++
В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
16.01.2011, 20:02 #2
Цитата Сообщение от Timon779 Посмотреть сообщение
Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789).
С этой сколько предложенных вариантов ни пробовал, не получается.
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
#include <iostream>
#include <sstream>
#include <string>
#include <cmath>
#include <algorithm>
#include <iterator>
 
int main()
{
    int n = 0;
    std::cin >> n;
    for(int i = pow(10.0, static_cast<double>(n - 1)); i < pow(10.0, static_cast<double>(n)) - 1; ++i)
    {
        std::ostringstream ost;
        ost << i;
        std::string str = ost.str(), tmp = ost.str();
        std::sort(tmp.begin(), tmp.end());
        std::string::iterator it = std::unique(tmp.begin(), tmp.end());
        tmp.resize(it - tmp.begin());
        if(tmp == str)
            std::cout << str << ' ';
    }
 
    return 0;
}
0
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
16.01.2011, 20:05 #3
2-ая. Проверяйте:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int col=0; 
void rec(int poz, int N, int a)
{
    if(poz==N)
    {
        col++;
        return;
    }
    for(int i=a+1; i<10; i++)
        rec(poz+1, N, i);
} 
int main(){
    int N;
    printf("N= ");
    scanf("%d", &N);
    for(int i=1; i<10; i++)
        rec(1, N, i);
    printf("Rez= %d\n", col);
 
        return 0;
}
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
16.01.2011, 21:14  [ТС] #4
asics ты мне выкладывал уже этот код, я говорю, у меня BORLANDC, он половины библиотек там не воспринимает

Добавлено через 1 минуту
Цитата Сообщение от valeriikozlov Посмотреть сообщение
2-ая. Проверяйте:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int col=0; 
void rec(int poz, int N, int a)
{
    if(poz==N)
    {
        col++;
        return;
    }
    for(int i=a+1; i<10; i++)
        rec(poz+1, N, i);
} 
int main(){
    int N;
    printf("N= ");
    scanf("%d", &N);
    for(int i=1; i<10; i++)
        rec(1, N, i);
    printf("Rez= %d\n", col);
 
        return 0;
}
спасибо, проверю, отпишусь
0
ForEveR
В астрале
Эксперт С++
7973 / 4735 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
16.01.2011, 21:23 #5
2.

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
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <malloc.h>
 
int foo(int one, int dig)
{
    char* Arr;
    Arr=(char*)malloc((dig+1)*sizeof(char));
    sprintf(Arr, "%d", one);
    int i=0;
    for(i=0; i<dig-1; ++i)
        if(Arr[i] >= Arr[i+1])
        {
            free(Arr);
            return 0;
        }
    free(Arr);
    return 1;
}
 
int main()
{
    int N=0;
    printf("Enter N: ");
    scanf("%d", &N);
    int i=0;
    for(i=(int)pow((double)10, N-1); i != (int)pow((double)10, N); ++i)
          if(foo(i, N) == 1)
             printf("%d\n", i);
    return 0;
}
1
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
17.01.2011, 01:06  [ТС] #6
Цитата Сообщение от ForEveR Посмотреть сообщение
2.

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
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <malloc.h>
 
int foo(int one, int dig)
{
    char* Arr;
    Arr=(char*)malloc((dig+1)*sizeof(char));
    sprintf(Arr, "%d", one);
    int i=0;
    for(i=0; i<dig-1; ++i)
        if(Arr[i] >= Arr[i+1])
        {
            free(Arr);
            return 0;
        }
    free(Arr);
    return 1;
}
 
int main()
{
    int N=0;
    printf("Enter N: ");
    scanf("%d", &N);
    int i=0;
    for(i=(int)pow((double)10, N-1); i != (int)pow((double)10, N); ++i)
          if(foo(i, N) == 1)
             printf("%d\n", i);
    return 0;
}
спасибо! Заработало!))) Ведь если я ввожу 3, в конце такие числа вылезают: 569, 578, 579, 589, 678 и т.д. это же правильно?

Добавлено через 1 минуту
осталась только задача со словами и числами в предложении
0
easybudda
Модератор
Эксперт CЭксперт С++
9633 / 5581 / 948
Регистрация: 25.07.2009
Сообщений: 10,715
17.01.2011, 01:10 #7
Цитата Сообщение от Timon779 Посмотреть сообщение
осталась только задача со словами и числами в предложении
Здесь не помогли?
Дублирование тем - нарушение правил форума. На первый раз устное предупреждение...
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
17.01.2011, 02:04  [ТС] #8
Цитата Сообщение от easybudda Посмотреть сообщение
Здесь не помогли?
Дублирование тем - нарушение правил форума. На первый раз устное предупреждение...
мне код с примером был нужен, я же там написал, что часть сделал, но не все, а потом тема в историю ушла. Теперь вот последнюю задачу осталось доделать
0
Timon779
1 / 1 / 0
Регистрация: 11.06.2010
Сообщений: 65
18.01.2011, 17:31  [ТС] #9
up! Остался первый вопрос
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2011, 17:31
Привет! Вот еще темы с ответами:

Найти самую длинную последовательность цифр в строке - C++
Помогите новичку, пожалуйста) Нарушен п.5.18 Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

Вычыслить количество слов в строке, длинна которых равна 3 символам и вывести их на экран, если же таких слов нет, то выдать об этом сообщение. - C++
Вычыслить количество слов в строке, длинна которых равна 3 символам и вывести их на экран, если же таких слов нет, то выдать об этом...

Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов) - C++
Написать программу, в которой с клавиатуры вводится строка символов. Подсчитать количество слов в строке, при условии, что в качестве...

Подсчитать количество всех строк, а потом - количество слов в каждой строке - C++
Программа считает количество строк в файле add.txt выводит на экран и записывает в новый указанный пользователем файл. #include...


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

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

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