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

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

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

строки - C++

30.11.2010, 18:22. Просмотров 297. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2010, 18:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос строки (C++):

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

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...

1
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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 13:05
Привет! Вот еще темы с ответами:

Функция перезаписывает символы строки заданным количеством символов другой строки - C++
Программа работает. Но не совсем правильно. В конечной строке появляются непонятные символы, которых быть там не должно. В программе нельзя...

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
&quot;Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Найти среднее арифметическое каждой строки матрицы и отсортировать строки по возрастанию - C++
Дана квадратная матрица. Найти среднее арифметическое каждой строки и отсортировать строки по возрастанию этих характеристик

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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