Вывести текст пословно в порядке возрастания количества гласных букв - C (СИ)

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

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

Ввести строку. Вывести пословно в порядке возрастания количества гласных букв.
вот собственно код,но с ошибкой,кто-нибудь,помогите исправить)))
#define N 50
#include <stdio.h>
 
int NGlSimb(int mas[N][N], int m)
{
int i,c=0;
for(i=0;mas[i][m]!='\0';i++)
if ((mas[i][m]=='a') || (mas[i][m]=='e'))
c++;
return c;
}
 
void ChngW(int mas[N][N], int n, int m)
{
int i=0,j=0;
int c;
for (i=0;i<N;i++)
{
c=mas[i][m];
mas[i][m]=mas[i][n];
mas[i][n]=c;
}
}
 
void main()
{
int mas[N][N],i=0,n,j=0;
while ((mas[i][j]=getchar())!='\n')
{
if (mas[i][j]==' ')
{
mas[i][j]='\0';
i=0;
j++;
}
else
i++;
}
mas[i][j]='\0';
n=j;
for (i=0 ; i<n ; i++)
{
for (j=i+1 ; j<=n ; j++)
{
if (NGlSimb(mas,i)>NGlSimb(mas,j))
ChngW(mas,i,j);
}
}
for (j=0;j<=n;j++)
{
for (i=0;mas[i][j]!='\0';i++)
{
putchar(mas[i][j]);
}
putchar('\n');
}
 
}

Решение задачи: «Вывести текст пословно в порядке возрастания количества гласных букв»

textual
Листинг программы
int newstrcmp(const char *s1, const char *s2)
{
    while (*s1 != '\0' && *s1 == *s2) {
        s1++;
        s2++;
    }
    return *s1 - *s2;
}

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

Ниже представлен список с пояснениями к каждому элементу:

  1. int newstrcmp(const char s1, const char s2) - это функция, которая принимает два указателя на строки (s1 и s2) и возвращает разницу между первым символом в s1 и первым символом в s2 (если они не равны). Если символы равны, то функция продолжает сравнивать следующие символы до тех пор, пока не найдет различие или не достигнет конца строки.
  2. while (*s1 != '\0' && *s1 == *s2) { - это цикл, который продолжается, пока *s1 не станет равным нулю (т.е. не достигнет конца строки s1) и при этом *s1 будет равен *s2 (т.е. текущие символы в s1 и s2 будут равны).
  3. s1++; и s2++; - это операторы инкремента, которые увеличивают указатели s1 и s2 на единицу, чтобы перейти к следующим символам в строках.
  4. return *s1 - *s2; - это оператор, который возвращает разницу между первым символом в s1 и первым символом в s2. Эта разница будет использована в качестве результата функции. В итоге, функция newstrcmp сравнивает строки, игнорируя регистр символов, и возвращает отрицательное значение, если первая строка идет перед второй, положительное значение, если первая строка идет после второй, и ноль, если строки идентичны.

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


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

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

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