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

Вывести текст, меняя соседние слова местами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки http://www.cyberforum.ru/cpp-beginners/thread58507.html
Написать функцию Даны два предложения. Найти самое короткое из слов первого предложения, которого нет во втором предложении. (с++)
C++ Функция: получить две матрицы и вернуть номер матрицы, среднее арифметическое элементов которой максимально нужна помощь в этой задаче!!! Написать функцию, получающую в качестве параметров два массива целого типа произвольного размера и возвращающую порядковый номер массива, среднее арифметическое... http://www.cyberforum.ru/cpp-beginners/thread58502.html
C++ 3 программы на си++
Помогите уже сколько парюсь нифига не втыкаю как делать!!!Необходимо разработать интерактивную программу, реализующую три численных метода вычисления определенных интегралов: метод прямоугольников,...
массивы C++
Всем алоха!В общем такая у мну беда,написал прогу по этому заданию-------------> В исходном массиве определить все триплеты элементов xi, xj, xk, для которых xk равен количеству сочетаний из xj по...
C++ Одномерные массивы. Циклические вычислительные процессы http://www.cyberforum.ru/cpp-beginners/thread58464.html
Помогите пожалуйста написать программы... 1)Нужно вычислить сумму квадратов элементов массива В, меньших числа А. А=10, N=18, от -10 до 21.(действительные числа) 2)В массиве А(N) определить число...
C++ Строки и массив 1) Заданы две строки. Найти самую длинную их общую часть. Решите, пожалуйста, потому что идей ноль. 2) И ещё есть задача. Дан одномерный массив. Нужно найти номер минимального положительного... подробнее

Показать сообщение отдельно
Maestro
Маэстро
Вирусоборец
1239 / 363 / 28
Регистрация: 06.09.2009
Сообщений: 780
24.10.2009, 18:53
Determinant, Код действительно ужасен. Не столько может быть алгоритмом, сколько визульным представлением и из-за этого практически нечитаем. Совет: Всегда делайте отступы в условиях и вложеных блоках. Хотя бы так:
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
...
int j, t(0), f(0), len;
 
len = strlen(str);
char slovo[25], *slova[10];
 
while(t < len){
   for(j = 0, i = t; isspace(str[i]) == 0; i++, j++){
     slovo[j] = str[i];
     slovo[j] = '\0';
     strcpy(slova[f], slovo);
     f++;
     t = i + 1;
    }
  }
strcpy(str, " ");
char *c;
for(t = 0; t < f; t++){
   slova[t] = c;
   slova[t] = slova[t + 1];
   slova[t + 1] = c;
   strcat(str, slova[t]);
   strcat(str, " ");
  }
cout<<"Invert text:"<<str;
fout<<str;
getch();
...
А ошибочка скорее всего здесь. Ты с перестановками запутался наверное:
C++
1
2
3
4
5
6
7
8
9
10
...
char *c;
for(t = 0; t < f; t++){
   slova[t] = c; // Присваиваем временно значение 'slova[t]'
   slova[t] = slova[t + 1]; // А дальше перезатираем сохранённое временно значение
   slova[t + 1] = c; // И присваиваем непонятно что...
   strcat(str, slova[t]);
   strcat(str, " ");
  }
...
Пробуй так
C++
1
2
3
4
5
...
   c = slova[t]; // 'c' это временный буфер и сюда сохраняем.
   slova[t] = slova[t + 1];
   slova[t + 1] = c;
...
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru