Объединение 3 задач в одну..

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
olya1994
Сообщения: 10
Зарегистрирован: 13 ноя 2014, 23:27

Всем привет!
Помогите пожалуйста объединить 3 задачи в одну..
Я так поняла,что все 3 функции должны выполнятся в одной задаче.. у меня имеются все 3 кусочка,но как отдельные задачи..
Заранее Большое спасибо!
Задание:
Следующие задания оформить в виде функций. Отдельно разработать демонстрационную программу для демонстрации работоспособности функций.
а. выяснить, является ли данное слово перевертышем ( так называются слова, читающиеся одинаково слева направо и справа налево) - оформить как логическую функцию.
б. возвратить первое слово строки (без пробелов и знаков препинания).
в. удалить первое слово строки со всеми пробелами.

Сами отдельные задачи..
А)

Код: Выделить всё

#include<iostream>
#include <string>
#include<math.h>
#include<windows.h>
#include<string.h>
#include<stdio.h>
#include <ctype.h>
 
using namespace std;
 
char bufRus[256];
 
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
char* deleted(char a[40]);
int palindrom(char a[40]);
 
int main()
{
    char s[40];
    cin.getline(s,40);
    cout << '\n';
    cout<<deleted(s);
    cout << '\n';
    if (palindrom(s)==0) cout<<"Yes"<<endl;
    else cout<<"No"<<endl;
system ("pause");
    return 0;
}
char* deleted(char a[40])
{
     int n=strlen(a),t=0,p=0;
    for (int i=0;i<n;i++)
    if (a[i]==' '|| a[i]==',' || a[i]=='.' ) {t=t+1;
      for (int j=i;j<n;j++)
       a[j]=a[j+1];}
    a[n-t]='\0';
    for (int i=0;i<n;i++)
    if (a[i]==' '|| a[i]==',' || a[i]=='.' ) t=1;
    if (t==1)
        return deleted(a);
    else return a;
}
int palindrom(char a[40])
{
    int p=0;
    char b[40];
    for (int k=0;k<strlen(a);k++)
    b[k]=a[strlen(a)-k-1];
    for (int f=0;f<strlen(a);f++)
    if (a[f]!=b[f]) p=p+1;
   
    return p;
}
Б)

Код: Выделить всё

#include <string>
#include <iostream>

using namespace std;
int main()
{
    char* psz = new char[255],*s=new char[255];
    cin>>s;
    strcpy(psz,s);
 
    for (int i = 0; psz[i] != '\0'; i++)
        if (psz[i] == '.' || psz[i] == '?' || psz[i] == '!')
        {
            int pos = i;
            while ((psz[pos] != ' ') && (pos >= 0)) pos--;
            for (int n = pos; psz[n] != '\0'; n++)
                psz[n] = psz[n+(i-pos)];
        }
 
     printf("%s\n",psz);
  
    system ("pause");
    return 0;
}
В)

Код: Выделить всё

#include <string>
#include <iostream>

using namespace std;
int main()
{
    int i, j, k, len, cnt = 0;
    char *ptr, c, st[100];
    
    puts("vvedite stroky ");
    gets(st);
    len = strlen(st);

    if(st[0] != 0 && st[0] != ' ')
        cnt = 1;

    for(i = 0; i < len && cnt < 2; ++i)
        if(st[i] == ' ' && st[i+1] != ' ')
            ++cnt;

    for(j = k = i; k < len; ++k)
    {
        c = st[k];
        if(c != ' ')
            st[j++] = c;
    }
    st[j] = 0;
    
    cout << &st[i] << endl;
    system ("pause");
    return 0;
}
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Нужно просто впихнуть все функции в один файл. В общем мейне написать приглашение о введении, скажем целого числа, как пункта меню, а так же написать заранее, что если пользовательно выберет 1, то будет то-то, если 2, то то-то, а есл 3, то вот это. Затем с помощью switch определить какое значение выбрал пользователь и внутри соответвующих case расположить тела main из исходных задач.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить