Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2013, 20:11   #1
taffer
Новичок
Джуниор
 
Регистрация: 05.11.2013
Сообщений: 4
По умолчанию Есть Программа, надо чтоб вывела на экран результат

С клавиатуры вводиться группа символов, например "abcdabfcd", потом указываем символ который будет "работать"- (возьмем d)
Главная задача:
Программа должна посчитать количество символов до указанного буквы, знака(в нашем случае d)если вдруг d стоит два раза или больше то до последнего d.
В ответе должно выводить: Первая группа символов-3
Вторая группа символов-4, так как abcDabfcD-до первой Д 3 символа до второй Д 4 символа.
taffer вне форума Ответить с цитированием
Старый 05.11.2013, 21:16   #2
taffer
Новичок
Джуниор
 
Регистрация: 05.11.2013
Сообщений: 4
По умолчанию Есть Программа, надо чтоб вывела на экран результат

Программа ввыводить количество символов до выбранной буквы

Есть чтото, но как результать вывести на экран, и где поставить паузу чтоб не пропадал консоль.
Код:
#include <stdio.h>
 
#define SIZE 20
 
void written(char []);
void squeeze(char [], int , int );
 
int main()
{
    char ch;
    char str1[SIZE];
    written(str1);
 
    scanf("%c", &ch);
    squeeze(str1, SIZE, ch);
}
 
void written(char str[]) //ввод масива
{
    int i = 0;
    char c;
 
    while ((c = getchar()) != '\n')
    {
        str[i] = c;
        i++;
    }
 
    str[i] = '\0';
}
 
void squeeze(char str[], int size, int c)
{
    int i, j, k = 0;
    int x, s;
    char a[size][k];
 
    for (j = 0; str[j] != '\0'; j++) //считаем сколько раз повторяеться буква до которой считаем все символы
        if (str[j] == c)
            k++;
 
    for (k; k > 0; k--) //выполняем цикл столько раз сколько нужно символу
    {
        for (i = 0; str[i] != '\0'; i++) //считаем
            a[i][k] = str[i];
 
        for (s = 0, x = 0; s < size; s++) //удаляем 1 символ и повторяем
            if (str[s] != c)
            {
                str[x] = str[s];
                x++;
            }
    }
}
taffer вне форума Ответить с цитированием
Старый 05.11.2013, 21:39   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
void squeeze(char str[], int size, int c)
А ты то хоть понимаешь что эта функция делает?
Вообще задача решается так:
Код:
int main()
{
    char ch;
    char str1[255]={0};
    scanf("%s",&str1);
    scanf("%c",&ch);
    int i;
    for(i=0;s[i] && s[i]!=ch;i++); printf("%d",i);
    getchar();
    return 0;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2013, 22:38   #4
taffer
Новичок
Джуниор
 
Регистрация: 05.11.2013
Сообщений: 4
По умолчанию

squeeze удаляет элемент, но согласен это чтото не то.
Компилирую пишет s не задекларирован
taffer вне форума Ответить с цитированием
Старый 05.11.2013, 22:58   #5
taffer
Новичок
Джуниор
 
Регистрация: 05.11.2013
Сообщений: 4
По умолчанию

нашёл спасибо
taffer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SOS Надо написать код в С++ ( есть образец, надо переделать просто!) Беата Общие вопросы C/C++ 9 08.12.2010 22:13
надо чтоб число q было равно месяцу(словами) мария2507 Microsoft Office Excel 8 24.03.2010 20:02
Надо чтоб браузер загрузил только чать документа reyn90 Помощь студентам 0 01.06.2009 19:24
программа суммирует натуральные числа от 1 до 50 и выводит результат вычисления на экран xxasb07 Паскаль, Turbo Pascal, PascalABC.NET 2 18.11.2008 10:32