Вывести текст пословно в порядке возрастания количества гласных букв - 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; }
Объяснение кода листинга программы
Ниже представлен список с пояснениями к каждому элементу:
- int newstrcmp(const char s1, const char s2) - это функция, которая принимает два указателя на строки (
s1
иs2
) и возвращает разницу между первым символом вs1
и первым символом вs2
(если они не равны). Если символы равны, то функция продолжает сравнивать следующие символы до тех пор, пока не найдет различие или не достигнет конца строки. while (*s1 != '\0' && *s1 == *s2) {
- это цикл, который продолжается, пока*s1
не станет равным нулю (т.е. не достигнет конца строкиs1
) и при этом*s1
будет равен*s2
(т.е. текущие символы вs1
иs2
будут равны).s1++;
иs2++;
- это операторы инкремента, которые увеличивают указателиs1
иs2
на единицу, чтобы перейти к следующим символам в строках.return *s1 - *s2;
- это оператор, который возвращает разницу между первым символом вs1
и первым символом вs2
. Эта разница будет использована в качестве результата функции. В итоге, функцияnewstrcmp
сравнивает строки, игнорируя регистр символов, и возвращает отрицательное значение, если первая строка идет перед второй, положительное значение, если первая строка идет после второй, и ноль, если строки идентичны.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д