Напечатать последовательность слов в обратном порядке - C (СИ) (150838)
Формулировка задачи:
Задание:
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных букв; между соседними словами - запятая, за последним словом точка. Напечатать эту же последовательность слов, но в обратном порядке.
Мой код:#include <stdio.h>
#include <iostream>
void main()
{
char s[31][6];
char str[181];
int i,j,k,n;
printf("CTPOKA: ");
gets(str);
k=0;
n=0;
for (i=0;str[i]!=0;i++)
{
if (str[i]==',')
{
s[k][n++]=0;
k++;
n=0;
continue;
}
s[k][n]=str[i];
n++;
}
for (i=k;i!=0;i--)
printf(" %s", s[i]);
system("pause");
}Решение задачи: «Напечатать последовательность слов в обратном порядке»
textual
Листинг программы
#include <stdio.h>
#include <iostream>
void main()
{
char str[181];
int i,j;
printf("CTPOKA: ");
gets(str);
for (i=strlen(str);i!=-1;i--)
{
if (str[i]==',')
for (j=1;j<=6;j++)
if (str[i+j]!=',' && str[i+j]!='.') printf("%c", str[i+j]); else {printf(","); break;}
if (i==0)
for (j=0;j<=5;j++)
if (str[i+j]!=',') printf("%c", str[i+j]); else break;
}
printf(".\n\n");
system("pause");
}
Объяснение кода листинга программы
Вывод программы представляет собой строку, полученную путем перебора символов строки в обратном порядке, при этом удаляются все символы, следующие за запятой, до тех пор, пока не будет достигнута точка. Список действий:
- Программа запрашивает строку, используя функцию
gets(). - Используется цикл
for, чтобы пройти по символам строки в обратном порядке. - Если текущий символ является запятой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ не является запятой, он выводится на экран.
- Если текущий символ является запятой, но следующая за ней точка не является точкой, она также выводится на экран.
- Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.
- Если текущий символ является запятой, а следующая за ней точка не является точкой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.
- Если текущий символ является запятой, а следующая за ней точка не является точкой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.
- Если текущий символ является запятой, а следующая за ней точка не является точкой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.
- Если текущий символ является запятой, а следующая за ней точка не является точкой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.
- Если текущий символ является запятой, а следующая за ней точка не является точкой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.
- Если текущий символ является запятой, а следующая за ней точка не является точкой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.
- Если текущий символ является запятой, а следующая за ней точка не является точкой, то используется вложенный цикл
for, чтобы пропустить символы, следующие за запятой, до тех пор, пока не будет достигнута точка. - Если текущий символ является запятой, а следующая за ней точка является точкой, то цикл прерывается.