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

Стоит задача сравнение и подсчета символов строки. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где ошибка в формуле ??? http://www.cyberforum.ru/cpp-beginners/thread350295.html
Задача Код void lab1::funB( double x, double y, double z ) { double b1 = pow( fabs( y + z ), 0.2 ); double b2 = pow( fabs( z ), 1.34 ); double b3 = pow( y - z, 2 ); double b4 = 1 + ( pow( sin( z ), 2 ) );
C++ Какое добавить условие чтобы произведение при отрицательных числах равнялось 0? #include<stdio.h> #include<conio.h> #include<iostream.h> #include<math.h> void main() { int sum,razn,proizv,i,minA,minB,min; const int n=4; int A,B,P,mina,minb; http://www.cyberforum.ru/cpp-beginners/thread350288.html
Вывести К-тый отрицательный элемент в упорядоченном дереве поиска с просмотром TLR C++
Должен выводиться К-тый отрицательный элемент в упорядоченном дереве поиска с просмотром TLR *.cpp #include "TREE.h" int main() { NodePtr t; int k, e, rez; TREE str;
C++ Где ошибки
Не получается отладить: *.cpp #include "strf.h" int main() { STRF strf; return 0; }
C++ найти ошибку в задаче шахматы http://www.cyberforum.ru/cpp-beginners/thread350278.html
здравствуйте! не могу найти ошибку в своем решений. у кого какие идеи? условие задачи: Азиз и Иван решили поиграть в шахматы. Однако у них не нашлось целой шахматной доски, поэтому Иван склеил ее из нескольких кусков. Каждый кусок вырезан из правильной шахматной доски. Однако Азиз считает что на полученной доске просто невозможно играть в шахматы. Поэтому вместо игры в шахматы они решили...
C++ помогите с решением написать программу составления пятиугольника с вершинами вершинами (100,100), (150,100), (170,120), (150,140), (100,100). Закрасить поле с другим цветом. на языке dev-c++ подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
12.09.2011, 12:46
Цитата Сообщение от Corvette Посмотреть сообщение
Вариант №1. с перемещением на 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
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <windows.h>//malloc realloc
#include <stdio.h>  //i\o
#include <ctype.h>  //toupper
#include <conio.h>  //getch
 
//Ввод тектса пока не встретим ch_end
char * GetInputText(char * str, long &sLen, char ch_end);
//Получение тетрады из 10-го числа
char * DecToBinTetr(long num);
bool CompStrTetrada(char * str, const char * sTetrada);
 
int main()
{
    long i,j,sLen,n = 16;
    //Всего тетрад 16 : 1111 = 2^0 + 2^1 + 2^2 + 2^3 = 15
    int iTetrads[16];//Число каждой тетерады в тектсе 
    
    char buf[4];
    char * s;
    char * str = (char *)malloc(sizeof(char));
    do
    {
        for(j = 0; j < n; j++)
            iTetrads[j] = 0;//Обнуляем счётчики тетерад
 
        printf("Enter text\r\n:>");
        str = GetInputText(str, sLen, '\n');
        //Добавляем текст нулями текст если строка содержала не кратное 4 число символов
        if((j = sLen % 4) != 0)
        {
            str = (char *)realloc(str,(sLen + (4 - j))/sizeof(char));
            for(i = sLen; i < sLen + (4 - j); i++)
                str[i] = '0';
            str[sLen + (4 - j)] = '\0';
        }
 
        printf("\tSplit string on tetrads\r\n");
        for(i = 0; i < sLen; i += 4)
        {
            s = str + i;
            printf("%c%c%c%c ",s[0],s[1],s[2],s[3]);
            for(j = 0; j < n; j++)
            {
                strcpy(buf,DecToBinTetr(j));
                //Если нашли тетраду увеличиваем счётчик соответсвующей тетрады на 1-цу
                if(CompStrTetrada(s, buf))
                    iTetrads[j] += 1;
            }
        }
        printf("\r\n\tList of tetrads in text\r\n");
        for(j = 0; j < n; j++)
        {
            strcpy(buf,DecToBinTetr(j));
            printf("%s : %d\r\n", buf, iTetrads[j]);
        }
        printf("Y - new input\r\n");
    }
    while(toupper(getch()) == 'Y');
    free((void *)str);
    free((void *)iTetrads);
    return 0;
}
 
char * GetInputText(char * str, long &sLen, char ch_end)
{
    if(str != NULL)
    {
        sLen = 0;
        while((str[sLen] = getchar()) != ch_end)
            str = (char *)realloc(str,(1 + (sLen = sLen + 1))*sizeof(char));
        str[sLen] = '\0';//Убрали мусор вконце
    }
    return str;
}
 
char * DecToBinTetr(long num)
{
    int i = 0;
    char bin[] = "0000";
    do
    {
        bin[i] = '0';
        if(num%2)
            bin[i] = '1';
        num /= 2;
        i++;
    }
    while(0 < num);
    return &bin[0];
}
 
bool CompStrTetrada(char * str, const char * sTetrada)
{
    bool bRet = false;
    char sCmp[4];
    strncpy(sCmp,str,4);//Копируем 4 первых символа строки str
    if(strcmp(sCmp,sTetrada) == 0)
        bRet = true;
    return bRet;
}
Миниатюры
Стоит задача сравнение и подсчета символов строки.  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru