Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
1

строки Си

09.07.2011, 22:07. Просмотров 4747. Ответов 34
Метки нет (Все метки)

пож-та скажите по заданию ли я сделала программу
задание:Расстояние между 2-я словами равной длины – это количество позиций, в которых разли-чаются эти слова. В заданном предложении найти пару наиболее далеко удаленных слов за-данной длины.


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
int main()
{
char str[80],a[1];
int j,k,l;
 
puts("Vvedite massiv: ");
gets(str);
l=strlen(str);
for(int i=0;i<l-1;i++) { k=1;
a[0]=str[i];a[1]=str[i+1];  
 for(j=2;j<l-1;j++)
if((a[0]==str[j]) &&  (a[1]==str[j+1]))
k=k+1;
cout<<"\npara "<<a[0]<<a[1]<<" vstrechaetsya "<<k<< " raz ";
} 
getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2011, 22:07
Ответы с готовыми решениями:

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

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

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой...

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

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

34
nameless
09.07.2011, 22:15
  #2

Не по теме:

blak, В название темы указано "строки Си", а используете "cout". Непорядок. :)

1
pito211
186 / 173 / 18
Регистрация: 22.03.2010
Сообщений: 612
09.07.2011, 22:18 3
Цитата Сообщение от blak Посмотреть сообщение
if((a[0]==str[j]) && (a[1]==str[j+1]))
ты же всего один байт выделила для а, непорядок
0
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
09.07.2011, 22:41  [ТС] 4
извините не ту программу показал
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.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{ int i,n,k=0,l;
    char a[150],b[150];
 
  puts("Vvedite stroky a:\n");
  gets(a);
  l=strlen(a);
 
  puts("Vvedite stroky b:\n");
  gets(b); l=strlen(b);
        for(i=0;i<=l;i++)
   
    {  
 
            if (a[i]!=b[i])
    k++
    ;
} 
cout<<"\n Razlichaushiesya:"<<k;
getch();
}
Добавлено через 18 минут
скажите пож-та я правильно решил?
0
09.07.2011, 22:41
lamed
297 / 297 / 150
Регистрация: 07.05.2011
Сообщений: 592
09.07.2011, 23:24 5
Неправильно. По заданию считывается строка, в ней выделяем слова, сравниваем попарно слова одинаковой длины, среди них находим наиболее удаленные, то есть те, которые различаются в большем числе позиций.
1
grizlik78
Эксперт С++
2048 / 1523 / 212
Регистрация: 29.05.2011
Сообщений: 3,158
10.07.2011, 01:03 6
Лучший ответ Сообщение было отмечено как решение

Решение

Что-то вроде такого. Версия для "широких" символов, так как у меня UTF-8, но идея одинакова.
При желании можно разделять знаками препинания и другими символами (здесь только пробелами).
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
 
#define MAX_WORDS 32
 
/* выделение слов заданной длины (возвращает количество) */
int get_words_by_len(wchar_t* text, wchar_t* words[], int size, int len);
/* вычисление расстояния между словами */
int dist(wchar_t const *s1, wchar_t const *s2);
 
int main()
{
    setlocale(LC_ALL, "");
    wchar_t text[] = L"хоровод пирожок превед молоток потолок молоко коробок паровоз пароход бородач колобок";
    int len = 7; /* заданная длина слова */
    wchar_t* words[MAX_WORDS];
    int max_dist = 0;
    int first = 0, second = 0;
    int num_words;
    
    num_words = get_words_by_len(text, words, MAX_WORDS, len);
    printf("num_words: %d\n", num_words);
    
    /* определение расстояний и выбор первой пары с максимальным расстоянием */
    if (num_words > 0)
    {
        int i, j;
        for (i = 0; i < num_words; ++i)
        {
            for (j = i + 1; j < num_words; ++j)
            {
                int d = dist(words[i], words[j]);
                if (d > max_dist)
                {
                    first = i;
                    second = j;
                    max_dist = d;
                }
                printf("dist(%ls,%ls): %d\n", words[i], words[j], d);
            }
        }
 
        printf("\ndist(%ls,%ls): %d\n", 
                words[first], words[second], max_dist);
    }
 
    return 0;
}
 
int get_words_by_len(wchar_t* text, wchar_t* words[], int size, int len)
{
    int num_words = 0;
    wchar_t *word, *state;
    word = wcstok(text, L" ", &state);
    while ( num_words < size && ( word != NULL) )
    {
        if (wcslen(word) == len)
        {
            words[num_words] = word;
            ++num_words;
        }
        word = wcstok(NULL, L" ", &state);
    }
    return num_words;
}
 
int dist(wchar_t const *s1, wchar_t const *s2)
{
    int d = 0;
    while (*s1 && *s2)
    {
        if (*s1++ != *s2++)
            ++d;
    }
    return d;
}
3
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
10.07.2011, 01:08  [ТС] 7
и как мне реализовать это в программе?
0
silent_1991
10.07.2011, 01:48
  #8

Не по теме:

бородач колобок :rofl:

3
grizlik78
Эксперт С++
2048 / 1523 / 212
Регистрация: 29.05.2011
Сообщений: 3,158
10.07.2011, 02:20 9

Не по теме:

Бородача я, кстати, последним вставил. И не посмотрел куда :)


Попробовал программу в VC2008. Работает, если setlocale поставить после объявления переменных. Эх, говорил же себе, проверяй программы с "-Wall -pedantic"
А ещё у wcstok из VC только 2 параметра. Ну да ничего, лишний не мешает.
0
easybudda
10.07.2011, 06:07
  #10

Не по теме:

Цитата Сообщение от blak Посмотреть сообщение
я сделала программу
Цитата Сообщение от blak Посмотреть сообщение
не ту программу показал
Вы уж определитесь как-нибудь... :)

1
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
10.07.2011, 18:46  [ТС] 11
извиняюсь!определился!

Добавлено через 7 часов 21 минуту
помогите пож-та с задачей ((
0
grizlik78
Эксперт С++
2048 / 1523 / 212
Регистрация: 29.05.2011
Сообщений: 3,158
10.07.2011, 18:48 12
А что, сообщение #6 не помогает?
0
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
10.07.2011, 18:49  [ТС] 13
не помогает!((
0
grizlik78
Эксперт С++
2048 / 1523 / 212
Регистрация: 29.05.2011
Сообщений: 3,158
10.07.2011, 18:51 14
Конкретнее? Чем ещё помочь? "Убить его ещё раз?" (c)
0
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
10.07.2011, 18:59  [ТС] 15
кого убить?
я незнаю как это все в коде написать
0
Jupiter
10.07.2011, 19:01
  #16

Не по теме:

Цитата Сообщение от blak Посмотреть сообщение
кого убить?
препода который еще возится с тобой

0
grizlik78
Эксперт С++
2048 / 1523 / 212
Регистрация: 29.05.2011
Сообщений: 3,158
10.07.2011, 19:05 17
Цитата Сообщение от blak Посмотреть сообщение
кого убить?
Это примерная цитата из к/ф "Скала".
В смысле, написать уже написанную программу ещё раз?
Цитата Сообщение от blak Посмотреть сообщение
я незнаю как это все в коде написать
А там это в чём написано? Что значит в коде?
0
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
10.07.2011, 19:12  [ТС] 18
никто не возится!

Добавлено через 7 минут
мне программу нужно на Си написать!
0
nameless
Эксперт С++
340 / 304 / 36
Регистрация: 16.06.2009
Сообщений: 486
10.07.2011, 19:15 19
Цитата Сообщение от blak Посмотреть сообщение
мне программу нужно на Си написать!
blak, Вам же grizlik78 уже написал. Чего вы еще хотите я понять не могу?
0
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
10.07.2011, 19:21  [ТС] 20
она не запускается!
0
10.07.2011, 19:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2011, 19:21

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки...

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

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


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

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

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