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

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

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

строки - C++

30.11.2010, 18:22. Просмотров 285. Ответов 1
Метки нет (Все метки)

Дана строка s, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5
строчных латинских букв. Между соседними словами стоит запятая, за
последним словом - точка. Напечатать только те слова, перед которыми в
строке находятся только меньшие (по алфавиту) слова, а за ними - только
большие.

Как лучше исправить?
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
#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <string>
#include <stdio.h>
const int alph_length = 26;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i,k,f,j,t;
   int float b[100];
    char s[30];
printf("vvedite stroky s dlinoi menee 30 simvolov: ");
gets_s(s);
if (s[i]=',' && s[i+1]>',' && s[i+1]<',')
{
    k=k+1;
}
else if (s[i]<',' && s[i]>',')
{
    b[k]=b[k]+s[i];
}
for(i=1;i<k-1;i++)
{
    strcat(b,s);
f=0;
for(j=2;j<30;j++);
if b[j]<b[j-1];
{
    f=1;
}
if(b[i]<b[k] && b[i]>b[k] )
{
    printf("%f",b[i]);
}
}
 
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2010, 18:22     строки
Посмотрите здесь:

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки - Java
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки. 2)Дана...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки - C++ Builder
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и надо через (n) символов первой строки...

Сравнить строки, первый несовпадающий элемент строки-приемника записать в регистр AL, строки-источника - в DL - Assembler
Помогите написать программу на ассемблерене совсем еще разобрался с этим задание: Ввести с клавиатуры две строки одноразрядных...

Слить две строки, вставив символы одной строки между символами другой строки - Pascal
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой индекс j, что aj &lt; bj, а для всех i &lt; j ai =...

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках. - Turbo Pascal
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши &quot;Ввод&quot;. Программа должна определить длину введенной...

Строки. Определить длину введенной строки, если длина кратна 4, то первая часть строки меняется местами со второй - Turbo Pascal
Ввести с клавиатуры строку символов.признак окончания ввода строки-нажатие клавиши ввод.Программа должна определить длину введенной строки...

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки. - Pascal
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов. Если в конце строки точка отсутствует, то найти слово,...

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Строки. Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1 - Turbo Pascal
Даны строка S и подстрока S1.Удалить из строки S все вхождения строки S1.В строке S подсчитать кол-во вхождений строки S1.

БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки - PascalABC.NET
Нужно создать базу данных в паскале, с операциями: добавление новой строки, удаление строки, редактирование имеющей строки. Желательно с...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
black_fir
0 / 0 / 0
Регистрация: 29.10.2010
Сообщений: 5
10.12.2010, 13:05  [ТС]     строки #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
33
34
35
36
37
38
39
40
#include "stdafx.h"
#include "string.h"
const int alph_length = 26;
 
int _tmain(int argc, _TCHAR* argv[])
{char s[111],s1[30][5]; //s - строковый массив, s1 - двумерный строковый массив (читать методичку к 5-ой лабе)
    int i,l,k=0,a1,a2;  // i,l,k - счетчики, а - вспомогательная переменная
    printf ("Vvedite stroku\n");
    gets_s(s);  //вводим строку с словами, между словами пробелы
    l=0;
    for (i=0; i<alph_length; i++)
    {
        if (s[i]!=',')
        {
            s1[l][k]=s[i];  // двумерному массиву присваеваем значения слов
            k++;    //счетчик символа слова вносимого в двумерный массив
        }
        else
        {
            s1[l][k]='\0';  //ставим нулевой символ (конец слова)
            l++;    //счетчик слов двумерного массива
            k=0;    //обнуляем счетчик символов
        }
    }
    s1[l][k]='\0';  //ставим нулевой символ в последнем слове
    l++;
    a1=strcmp(s1[0],s1[1]);     //сравниваем слова с помощью функции STRCMP(), в методичке о ней написано
    if (a1 < 0)                 // если a<0, т.е. s1[0]<s1[1], то ...
        printf ("%s ",s1[0]);   // Выводим первое слово, т.к. оно меньше следующего
    for (i=1; i<l; i++)     // начинаем проверять остальные слова лексиграфически
    {                               
        a1=strcmp(s1[i],s1[i-1]);   // проверка со словом до
        a2=strcmp(s1[i],s1[i+1]);   // проверка со словом после
        if ((a1 > 0) && (a2 < 0))   // если оба условия выполняются т.е. предыдущее слово меньше s1[i], а слово после него больше то...
            printf ("%s ",s1[i]);   // ... то выводим s1[i]
    }
    printf ("\n");
 
    return 0;
}
Ответ Создать тему
Опции темы

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