1 / 1 / 0
Регистрация: 06.05.2013
Сообщений: 16
1

Написать программу, которая будет зеркально выводить введенную строку

27.05.2014, 03:03. Показов 951. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Стоит задача: написать программу, которая будет зеркально выводить введенную строку.
Условие: нельзя использовать стандартные функции библиотеки <cstring> и им подобные
ОС: windows 7, x64
Компилятор: Dev-C++

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
# include <iostream>
# include <stdlib.h>
# include <conio.h>
 
 
using namespace std;
 
int main()
 
{
int i, j, k=0;
const int n=100;
char arr[n], mir[n];
 
cout<< "enter string: ";
 
gets(arr);
 
for(i=0; i< n ;i++) if(arr[i] ) k++;
 
cout<< endl << "mirror of your string is: ";
for( i=k, j=0; i>-1; i--, j++ ) 
         mir[j] = arr[i];
 
cout<< mir;
 
 
return 0;
    
}
Добавлено через 26 минут
добавлю комментарии:
C++
1
2
3
4
for(i=0; i< n ;i++) if(arr[i] ) k++;// length of string
 
cout<< endl << "mirror of your string is: ";
for( i=k, j=0; i>-1; i--, j++ ) // content of the last index of arr copy to the content of the first index mir, and so on till the arr[0]
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2014, 03:03
Ответы с готовыми решениями:

Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию
Написать программу, которая будет добавлять в текстовый файл введенную из клавиатуры информацию....

Написать программу, которая будет выводить елочку из символов
Нужно написать программу которая будет выводить елочку из символов ^ ^ ^^^ ^^^^^ по...

Написать программу, которая будет выводить результат поиска с сайта
Нужно написать программу, которая будет отправлять поисковой запрос на сайт nigma.ru, и выводить...

Написать программу, которая будет генерировать одномерный массив и выводить сумму элементов
Необходимо написать программу которая будет генерировать одномерный массив и выводит сумму...

7
5 / 5 / 2
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 03:04 2
в чем заключается вопрос?
0
1 / 1 / 0
Регистрация: 06.05.2013
Сообщений: 16
27.05.2014, 03:18  [ТС] 3
Цитата Сообщение от slayster Посмотреть сообщение
в чем заключается вопрос?
программа не работает должным образом
0
5 / 5 / 2
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 03:26 4
что-то подобное?
C++
1
2
3
4
5
6
7
8
9
10
11
12
    char buf[100];
    int i = 0;
 
    gets(buf);
 
    while (buf[i])
        i++;
 
    for (int j = i - 1; j >= 0; j--)
        cout << buf[j];
 
    cout << endl;
0
1 / 1 / 0
Регистрация: 06.05.2013
Сообщений: 16
27.05.2014, 03:40  [ТС] 5
Цитата Сообщение от slayster Посмотреть сообщение
что-то подобное?
именно, но мне интересно почему мой код не работает.

И кстати, почему в твоём выводится последний символ
C++
1
for (int j = i - 1; j >= 0; j--)
получается, что '\0' тоже учитывается? Тогда мне не понятно почему цикл счёта символов
C++
1
2
while (buf[i])
        i++;
останавливается на нуле после нуля
0
5 / 5 / 2
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 03:49 6
Цитата Сообщение от karzuan Посмотреть сообщение
И кстати, почему в твоём выводится последний символ Код
C++
1
for (int j = i - 1; j >= 0; j--)
в i количество символов + '\0', который стоит последним. int j = i-1, последний элемент пропускается.

Добавлено через 1 минуту
Цитата Сообщение от karzuan Посмотреть сообщение
получается, что '\0' тоже учитывается? Тогда мне не понятно почему цикл счёта символов
C++
1
2
while (buf[i])
i++;
'\0' не учитывается.
0
1 / 1 / 0
Регистрация: 06.05.2013
Сообщений: 16
27.05.2014, 03:58  [ТС] 7
добавил выход из цикла вычисления длины строки и уменьшил величину последнего символа на один ( похоже действительно указывает на нулевой символ )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
 
{
int i, j, k=0;
const int n=100;
char arr[n], mir[n], ch;
 
cout<< "enter string: ";
 
gets(arr);
 
for(i=0; i< n ;i++) if(arr[i] ) k++;// length of string
else break;//out of cycle
cout<< endl << "mirror of your string is: ";
for( i=k-1, j=0; i>-1; i--, j++ ) // content of the last index of arr copy to the content of the first index mir, and so on till the arr[0]
         mir[j] = arr[i];
 
cout<< mir;
 
return 0;
    
}
непонятно, если счетчик длины массива считает трушные значения, почему символ конца строки тоже считается за тру, если он ноль.

Добавлено через 4 минуты
Цитата Сообщение от slayster Посмотреть сообщение
'\0' не учитывается.
в таком случае зачем вычитать единицу.
0
5 / 5 / 2
Регистрация: 25.03.2014
Сообщений: 20
27.05.2014, 04:08 8
Цитата Сообщение от karzuan Посмотреть сообщение
в таком случае зачем вычитать единицу.
элементы массива начинаются с нуля... Вводим 1 символ, получаем в массив {'1', '\0'}; следовательно у нас 2 элемента с индексами 0 и 1
C++
1
for (int j = i - 1; j >= 0; j--)
получаем
C++
1
for (int j = 1 -1; j>=0; j--);
если не устраивает, можно исправить на while (buf[i]!='\0')
для наглядности
1
27.05.2014, 04:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2014, 04:08
Помогаю со студенческими работами здесь

Написать программу, которая будет выводить значения АЧХ и ФЧХ по заданным параметрам
Здравствуйте помогите пожалуйста написать программу которая будет выводить значения АЧХ и ФЧХ по...

Написать программу которая будет выводить матрицу и отсортировать её по убыванию каждую строку и столбец в матрице
program cal;//Написать программу которая будет выводить матрицу и отсортировать её по убыванию...

Написать программу, которая будет выводить цитаты
Добрый день, очень плохо идет понимание языка Си, вообще не могу разобраться... Помогите написать...

Написать программу, которая будет выводить прогноз погоды
Всем привет . У меня во время изучения с # возникла идея написать программу, которая будет выводить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru