Задача с кодом (перестал работать) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, писал код по задаче :

Написать программу, обрабатывающую введенный пользователем текст, состоящий из слов, записанных через пробелы. Длина текста не больше 255 символов. В тексте могут быть использованы любые симво-лы. Словом считать последовательность символов, не содержащую про-бел. Необходимо введенный текст вывести на экран до и после его пре-образования, выполнив все задания, указанные в индивидуальном зада-нии. Индивидуальное задание выбирается в соответствии с номером ва-рианта из нижеприведённого списка.

Само задание:

25. Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое нечетное слово и не входят в хотя бы одно четное сло-во. Подсчитать количество слов между первым и последним цифровым словом.

Выполнил первый пункт с гласными, всё отлично работало, написал ниже подсчет слов между цифровыми словами перестало печатать гласные. Подсчет слов работает.Есть идеи?
#include <stdio.h>
#include <stdlib.h>
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int func(char mas[],char sumb) {
    int n;
    for (n=0; n<strlen(mas); n++) {
        if (mas[n]==sumb)
            return 1;
    }
    return 0;
}
int main(int argc, char *argv[]) {
    char array[254];
    char numb[]= {"1234567890"};
    int j,count,n,e=0,y=0,u=0,i=0,o=0,a=0,bgn=-1,fnl=0;
    int e1=0,u1=0,i1=0,o1=0,a1=0,y1=0; /*lokal const*/
    count=1;
    printf ("Vvedite text ne bolshe 255 simbolov\n");
    gets(array);
    array[strlen(array)]=' ';
    for (j=0; j<strlen(array); j++) {
        if(array[j]==' ') {
            if (a1!=0)
                a++;
            else {
                if (count%2==1)
                    a=-255;
            }
            if (e1!=0)
                e++;
            else {
                if (count%2==1)
                    e=-255;
            }
            if (y1!=0)
                y++;
            else {
                if (count%2==1)
                    y=-255;
            }
            if (u1!=0)
                u++;
            else {
                if (count%2==1)
                    u=-255;
            }
            if (i1!=0)
                i++;
            else {
                if (count%2==1)
                    i=-255;
            }
            if (o1!=0)
                o++;
            else {
                if (count%2==1)
                    o=-255;
            }
            e1=0;
            u1=0;
            i1=0;
            o1=0;
            a1=0;
            y1=0;
            count++;
        } else {
            if (count%2==1) {
                switch (array[j]) {
                    case 'a':
                        a1++;
                        break;
                    case 'e':
                        e1++;
                        break;
                    case 'y':
                        y1++;
                        break;
                    case 'u':
                        u1++;
                        break;
                    case 'i':
                        i1++;
                        break;
                    case 'o':
                        o1++;
                        break;
                }
            }
 
        }
    }
    if ((a>0)&&(count/2-a>0))
        printf("a");
    if ((e>0)&&(count/2-e>0))
        printf("e");
    if ((i>0)&&(count/2-i>0))
        printf("i");
    if ((o>0)&&(count/2-o>0))
        printf("o");
    if ((u>0)&&(count/2-u>0))
        printf("u");
    if ((y>0)&&(count/2-y>0))
        printf("y");
    /* mama, eto 2 punkt pomogi*/
    a=1;
    count=1;
    for (j=0; j<strlen(array); j++) {
        if(array[j]!=' ') {
            a=a*func(numb,array[j]);
        } else {
            if (a>0) {
                if(bgn==-1) {
                    bgn=count;
                }
                fnl=count;
            }
            count++;
        }
    }
    if (fnl-bgn==0)
        printf ("%i",fnl-bgn);
    else
        printf("%i",fnl-bgn-1);
    return 0;
}

Решение задачи: «Задача с кодом (перестал работать)»

textual
Листинг программы
array[strlen(array)]=' ';
for (j=0; j<strlen(array); j++) {

Объяснение кода листинга программы

  1. В данном коде имеется массив (или строка) с названием array.
  2. В начале кода в массиве array присутствует некоторая информация.
  3. Затем происходит проверка длины массива array с помощью функции strlen().
  4. После этого, в самом массиве array добавляется символ пробела.
  5. Далее, с помощью цикла for происходит обход каждого элемента массива array.
  6. Внутри цикла, для каждого элемента массива выполняется некоторое действие или операция.
  7. Номер элемента массива, который обрабатывается в данный момент, сохраняется в переменной j.
  8. Цикл продолжается до тех пор, пока не будет выполнена проверка условия j<strlen(array), то есть пока не будут обработаны все элементы массива.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы