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

Поменять местами четные и нечетные по порядку следования слова - C++

Восстановить пароль Регистрация
 
FRAY
0 / 0 / 0
Регистрация: 31.03.2010
Сообщений: 14
07.06.2011, 20:59     Поменять местами четные и нечетные по порядку следования слова #1
Дано предложение, слова в нем разделены пробелом, поменять местами четные и нечетные по порядку следования слова. Напишите пожалуйста программу на Си.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2011, 20:59     Поменять местами четные и нечетные по порядку следования слова
Посмотрите здесь:

Двумерный массив. Поменять четные и нечетные строки. C++
Создать двумерный массив и поменять в нем местами четные и нечетные элементы C++
Поменять местами четные и нечетные по порядку следования слова C++
Найти четные и нечетные элементы одномерного массива и поменять их местами C++
Поменять местами четные и нечетные символы слова C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kisya8
0 / 0 / 0
Регистрация: 01.05.2009
Сообщений: 18
07.06.2011, 23:27     Поменять местами четные и нечетные по порядку следования слова #2
И если можно,в С++
FRAY
0 / 0 / 0
Регистрация: 31.03.2010
Сообщений: 14
07.06.2011, 23:30  [ТС]     Поменять местами четные и нечетные по порядку следования слова #3
Цитата Сообщение от kisya8 Посмотреть сообщение
И если можно,в С++
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 <string>
#include <iostream>
#include <vector>
#include <conio.h>
#include <stdlib.h>
#include <sstream>
#include <iterator>
 
int main()
{
        std::cout << "Enter the sentence" << std::endl;
        std::string s;
        std::getline(std::cin, s);
        std::vector<std::string> v;
        std::stringstream str(std::stringstream::in | std::stringstream::out);
        str << s;
        std::copy(std::istream_iterator<std::string>(str), std::istream_iterator<std::string>(), std::back_inserter(v));
        for(size_t i = 0; i < v.size() && i < (v.size() - 1); i += 2)
                swap(v[i], v[i + 1]);
        std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>(std::cout, " "));
        _getch();
        return EXIT_SUCCESS;
}
kisya8
0 / 0 / 0
Регистрация: 01.05.2009
Сообщений: 18
07.06.2011, 23:32     Поменять местами четные и нечетные по порядку следования слова #4
Спасибо большое,а что нужно дописать,чтобы заданная строка была сохранена в один файл,а результат в другой?
FRAY
0 / 0 / 0
Регистрация: 31.03.2010
Сообщений: 14
10.06.2011, 00:57  [ТС]     Поменять местами четные и нечетные по порядку следования слова #5
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
#include "stdafx.h"
#include <string.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    int m=0,n=0,t,dlina,count,i,j;
    int Indexes[40][2];
    char s,s1[20],s2[20];
    printf ("vvedite predlozhenie:\n");
    scanf ("%s",&s);
    printf ("vvedite kol-vo elementov:\n");
    scanf ("%d",&dlina);
    count=0;
    for (i=0;i<dlina;i++){
*       if ((s[i]==' ') && (s[i+1]!=' ')){
            Indexes[count][0]=i;
        }
        else{ 
            Indexes[count][1]=i;}
        count++;
    }
    count=0;
    for (j=Indexes[count][0];j<Indexes[count][1];j++){
        t=count%2;
        if (t=0) {
*           s1[m]=s[j];
            m++;
        }
        else {
*           s2[n]=s[j];
            n++;}
    }
 
    return 0;
}
помогите закончить программу. еще в программе в помеченных строчках появляется ошибки:
"error C2109: для индекса требуется массив или указатель" и "IntelliSense: выражение должно иметь тип указателя на объект"
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
10.06.2011, 02:20     Поменять местами четные и нечетные по порядку следования слова #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от FRAY Посмотреть сообщение
Дано предложение, слова в нем разделены пробелом, поменять местами четные и нечетные по порядку следования слова.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <string>
#include <sstream>
 
int main(){
    std::string s;
    
    while ( std::cout << "String: " && std::getline(std::cin, s) && ! s.empty() ){
        std::cout << "Result: ";
        std::istringstream iss(s);
        std::string s1, s2;
        while ( iss >> s1 ){
            if ( iss >> s2 )
                std::cout << s2 << " ";
            std::cout << s1 << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}
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 <string.h>
 
int main(void){
    char buf[BUFSIZ], * s1, * s2;
 
    while ( printf("String: ") && scanf("%[^\n]%*c", buf) == 1 ){
        printf("Result: ");
        s1 = strtok(buf, " \t");
        while ( s1 ){
            if ( s2 = strtok(NULL, " \t") )
                printf("%s ", s2);
            printf("%s ", s1);
            s1 = strtok(NULL, " \t");
        }
        printf("\n");
    }
 
    return 0;
}
Цитата Сообщение от kisya8 Посмотреть сообщение
что нужно дописать,чтобы заданная строка была сохранена в один файл,а результат в другой?
в командной строке
Код
my_greatest_program < input.txt > output.txt
Yandex
Объявления
10.06.2011, 02:20     Поменять местами четные и нечетные по порядку следования слова
Ответ Создать тему
Опции темы

Текущее время: 07:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru