Считать список, парные слова вывести в одну строку, а непарные в другую - C (СИ)
Формулировка задачи:
Помогите пожалуйста, написал такой вот код, нужно считать список, и парные слова вывести в одной строке, а непарные в другой. Программа после запуска сразу же вылетает, уже не знаю что делать. Пишу на С.
#include <stdio.h> #include <stdlib.h> #define N 256 int main() { char str[255], buf1[N], buf2[N], *odd, *even, *start; int flag = 0; printf("vvedite"); scanf("%s", str); start = str; odd = buf1; even = buf2; while (*start) { if (!flag) { while (*start != ' ' && *start) *odd++ = *start++; if (*start) { *odd++ = ' '; start++; flag = 1; } } else { while (*start != ' ' && *start) *even++ = *start++; if (*start) { *even++ = ' '; start++; flag = 0; } } } *odd = '\0'; *even = '\0'; puts(buf1); puts(buf2); //printf(buf1); //printf(buf2); return 0; }
Решение задачи: «Считать список, парные слова вывести в одну строку, а непарные в другую»
textual
Листинг программы
#include <stdio.h> #define N 256 int main() { char str[N], buf1[N],buf2[N]; int i,j1=0,j2=0; gets(str); for(i=0;str[i];i++) if(str[i]%2) buf1[j1++]=str[i]; else buf2[j2++]=str[i]; buf1[j1]=0; buf2[j2]=0; puts(buf1); puts(buf2); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с консолью (stdio.h).
- Установка константы N равной 256.
- Объявление трех массивов типа char: str, buf1, buf2 размером N.
- Объявление трех переменных типа int: i, j1, j2, которые будут использоваться в цикле.
- Считывание строки с помощью функции gets в массив str.
- Начальные значения j1 и j2 устанавливаются равными нулю.
- В цикле происходит проверка каждого символа строки str. Если символ нечетный, он добавляется в buf1, иначе в buf2.
- После прохода цикла, в buf1 и buf2 остаются только парные символы, которые выводятся на экран с помощью функции puts.
- Значения j1 и j2 сбрасываются в ноль.
- Вывод на экран массива buf2, содержащего нечетные символы.
- Выход из программы с возвращаемым значением 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д