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

Подсчитать максимальное количество идущих подряд пробелов в строке

21.02.2013, 21:46. Просмотров 1789. Ответов 14
Метки нет (Все метки)

Здравствуйте, я новичок, сижу вот, парюсь. Допилите программу пожалуйста. Подсчитать максимальное количество идущих подряд пробелов в строке. Пожалуйста, срочно

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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int i;
    int count=1;
    int max=0;
    int len;
    
    char ar[256]; 
   printf ("vvedite stroku: \n");
   scanf ("%s", len);
 
for(int i=0;i<len;i++)
        {
         while(ar[i]==' ')
                {
                 count++;
                }
         if(max<count) max = count;
        
}
    printf ("%d", count);
    system ("PAUSE");
   
    return 0;
  }
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2013, 21:46
Ответы с готовыми решениями:

Подсчитать количество подряд идущих пробелов в строке
Дана строка пробелов подсчитать количество подряд идущих пробелов. Не работает если нет ни одного...

Подсчитать наибольшее количество подряд идущих пробелов в строке
Дана строка символов.Подсчитать наибольшее количество подряд идущих пробелов.

Подсчитать наибольшее количество идущих подряд пробелов
Здраствуйте, помогите написать код к такой задаче: Дана строка символов S. а) Подсчитать...

Подсчитать максимальное количество подряд идущих отрицательных элементов
Помогите, пожалуйста, написать программу на языке Си: Дан одномерный массив А, состоящий из N...

Подсчитать максимальное количество подряд идущих отрицательных элементов
Дан одномерный массив А, состоящий из N элементов. Подсчитать максимальное количество подряд идущих...

14
art3m_art
13 / 13 / 8
Регистрация: 18.02.2013
Сообщений: 210
21.02.2013, 22:17 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>
#include <stdlib.h>
 
int main()
{
    int i, c, kolvo = 0, max1 = 0;
    char ar[256];
    printf ("vvedite stroku: \n");
    for(i = 0;(c = getchar()) != '\n' && i <= 255;i++)
        ar[i] = c;
    for(i = 0;i != 256;i++)
        if(ar[i] == ' ')
            kolvo++;
        else if(ar[i] != ' ')
        if(kolvo > max1) {
            max1 = kolvo;
            kolvo = 0;
           }
    printf ("%d", max1);
    getch();
    return 0;
}
1
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
21.02.2013, 22:24  [ТС] 3
Спасибо, но не понял 9, 10 строку. Распишите подробно пожалуйста, и можно как-то без getchar обойтись/заменить его на что-то более примитивное? А то в учебном заведении своём ещё не было такого, боюсь, меня не поймут
0
art3m_art
13 / 13 / 8
Регистрация: 18.02.2013
Сообщений: 210
21.02.2013, 22:31 4
А что тут понимать-то? Обычная функция, возвращает символ из потока ввода.
C
1
2
for(i = 0;(c = getchar()) != '\n' && i <= 255;i++) /* переменной c присваивается введённое значение и если оно не равно знаку перехода на новою строку '\n' и i не превышает 255, элементу массива i присвоить c*/
        ar[i] = c;
http://www.c-cpp.ru/content/getchar
0
21.02.2013, 22:31
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
21.02.2013, 22:35  [ТС] 5
так а в общем плане что эти две строки делают? вот 11-18 считают кол-во пробелов, а 9,10?
0
art3m_art
13 / 13 / 8
Регистрация: 18.02.2013
Сообщений: 210
21.02.2013, 22:37 6
Присваивают значения элементам массива.
0
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
21.02.2013, 22:38  [ТС] 7
как scanf, только более кратко?
0
art3m_art
13 / 13 / 8
Регистрация: 18.02.2013
Сообщений: 210
21.02.2013, 22:42 8
scanf так не сможет, если я не ошибаюсь...
0
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
21.02.2013, 22:46  [ТС] 9
Ну ладно, спасибо большое!
0
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
28.02.2013, 17:08  [ТС] 10
А можно эту же задачу реализовать с помощью функций библиотеки string.h?
0
Croessmah
++Ͻ
15317 / 8690 / 1659
Регистрация: 27.09.2012
Сообщений: 21,420
Записей в блоге: 2
Завершенные тесты: 1
28.02.2013, 18:03 11
Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <string.h> 
 
int main(){
    char str[1024];
    char * p=str;
    int maxcount=0;
    int tempcount=0;
    gets(str);
    while(*p){
        if (*p==' '){
            ++tempcount;
        }else{
            if(tempcount>maxcount)
                maxcount=tempcount;
            tempcount=0;
        }
        ++p;
    }
    if(tempcount>maxcount)
        maxcount=tempcount;
    printf("Max: %d",maxcount);
}
0
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
28.02.2013, 21:13  [ТС] 12
Простите, а где тут функция string.h'а? Да и программа-то совсем не компилируется
0
art3m_art
13 / 13 / 8
Регистрация: 18.02.2013
Сообщений: 210
28.02.2013, 21:15 13
А можно узнать, где вы изучаете Си? И что, вам дали задание написать такую же программу, с использованием string.h?
0
11101010
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 35
01.03.2013, 14:46  [ТС] 14
всё, вопрос закрыт
0
PATAMDAR
0 / 0 / 0
Регистрация: 23.11.2013
Сообщений: 1
27.11.2013, 02:25 15
#include "stdafx.h"
#include "iostream"
using namespace std;

int strprmax(char s[])
{ int i,k=0,max=0;
for(i=1;s[i]!='\0';i++)
if(s[i]==' ')
k++;
else
if(s[i]!=' ')
if(k>max)
{max=k;
k=0;}
return max;
}

int _tmain(int argc, _TCHAR* argv[])
{
char s[100];
char c;
do
{
cin.getline(s,100);
cout<<"max="<<strprmax(s)<<endl;;
cout<<"povtor?"<<endl;
cin>>c;
}
while(c=='y'||c=='Y');
getchar();
getchar();
return 0;
}
0
27.11.2013, 02:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2013, 02:25

Заменить в строке каждую серию подряд идущих пробелов на один пробел
Заменить в строке каждую серию подряд идущих пробелов на один пробел.

В заданной строке удалить все лишние пробелы, заменяя несколько подряд идущих пробелов одним
Добрый день. Столкнулся с проблемой в программе. Пробелы удаляет, но если ввести пробелы перед...

Во введенном тексте подсчитать наибольшее количество цифр, идущих подряд
помогите плиз ошибку исправить, как сделать так, чтобы он считал только цифры, идущие подряд, а не...


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

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

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