Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <locale.h>
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- void vyvod(char **m, int a);
- int fail(char *slv, char **m);
- int schityv(char *slv, char **m);
- void sort(char **m, int a);
- void razbienie(char **m, int a);
- int proverka(char ch);
- int main(void){
- setlocale(LC_ALL, "");
- char slv[1000], *m[50];
- int a = 0;
- a = schityv(slv, m);
- vyvod(m, a);
- sort(m, a);
- vyvod(m, a);
- razbienie(m, a);
- return 0;
- }
- void vyvod(char **m, int a){
- printf("\nCлова:\n");
- for (int i=0; i<a; i++)
- printf("\n%2d: %s", i+1, m[i]);
- printf("\n________________________________________________\n");
- }
- int proverka(char ch){//проверка на то, что символ ch это буква
- if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
- return 1;
- return 0;
- }
- int schityv(char *slv, char **m){
- char ch;
- int t=0, a=1;
- printf("\nВведите не меньше 3х слов:\n");
- m[0] = &slv[0]; //указатель на первое слово
- ch = 0;
- while (ch != 10){
- ch = getchar();
- if(proverka(ch))
- slv[t++] = ch;
- else
- if(t!=0 && slv[t-1]!='\0'){
- slv[t++] = '\0';
- m[a++] = &slv[t];}}
- return (a-1);
- }
- void sort(char **m, int a){
- int q=0;
- char *w;
- for(int i=0; i<a-1; i++, q=i){
- for(int j=i+1; j<a; j++)
- if(strcmp(m[q], m[j]) > 0)
- q = j;
- if (q!=i){
- w = m[i];
- m[i] = m[q];
- m[q] = w;}}
- }
- int fail(char *slv, char **m){
- FILE *f;
- f = fopen("Fail.txt", "r");
- int a=1, t=0;
- m[0] = &slv[0];
- while(!feof(f)){
- slv[t++] = getc(f);
- if(slv[t-1] == 10 || slv[t-1] == '\n')
- if(t != 0 && slv[t-2] != '\0'){
- slv[t++] = '\0';
- m[a++] = &slv[t];}}
- fclose(f);
- return (a-1);
- }
- void razbienie(char **m, int a){
- int i=1, j, blok=a/3, bloki[3]={0,0,0};
- for(j=0, i=(j*blok); j<3; ++j ){
- if(j==0)
- printf("a-");
- else
- printf("%c-", *m[i]);
- while(i<a && (i<=((j+1)*blok) || *m[i]==*m[i-1] || bloki[j]==0)){
- bloki[j]++;
- ++i;}
- if(j==2){
- printf("z");
- printf(":%d; ", bloki[j]);}
- else{
- printf("%c", *m[i-1]);
- printf(":%d; ", bloki[j]);}}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement