Advertisement
Guest User

Untitled

a guest
Apr 25th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <string.h>
  4. #include <cstdlib>
  5. // 3 7
  6. int const num = 4; // число строк
  7. const int size = 100; // максимальное число символов
  8. void input(char ch[], int size, int arr2[], int *k)
  9. {
  10.  
  11.     int i, j = 0;
  12.     int flag = 0;
  13. label1: printf("Введите строку: ");
  14.     fgets(ch, size, stdin);
  15.     if (strlen(ch) > size)
  16.     {
  17.         printf("Длина строки больше чем максимально допустимая - %d", size);
  18.         goto label1;
  19.     }
  20.     else {
  21.         for (i = 0; i < strlen(ch); i++)
  22.         {
  23.             if (flag != 1)
  24.             {
  25.                 if (ch[i] >= 'a' && ch[i] <= 'z')
  26.                 {
  27.                     arr2[*k] = ch[i];
  28.                     flag = 1;
  29.                 }
  30.             }
  31.         }
  32.     }
  33. }
  34.  
  35. int sort(char ch[][size], int num, int arr2[])
  36. {
  37.     int i, j, temp2;
  38.     int temp = 0;
  39.     for (i = 0; i<num - 1; i++)
  40.         for (j = 0; j<num - 1; j++)
  41.             if (arr2[j]>arr2[j + 1])
  42.             {
  43.                 temp++;
  44.                 temp2 = arr2[j];
  45.                 arr2[j] = arr2[j + 1];
  46.                 arr2[j + 1] = temp2;
  47.                 char temp[100];
  48.                 strcpy(temp, ch[j]);
  49.                 strcpy(ch[j], ch[j + 1]);
  50.                 strcpy(ch[j + 1], temp);
  51.             }
  52.     return(temp);
  53. }
  54.  
  55. void output(char string[], int *number, int arr2)
  56. {
  57.     printf("\n Строка номер %d - %s, первая буква - %c,\n", number, string, arr2);
  58. }
  59.  
  60. int main()
  61. {
  62.     setlocale(LC_ALL, "RUS");
  63.     char ch[num][size]; // массив строк
  64.     int arr2[num]; // первая буква
  65.     int amount = 0; // кол-во перестановок
  66.     for (int i = 0; i < num; i++)
  67.     {
  68.         input(ch[i], size, arr2, &i);
  69.     }
  70.     amount = sort(ch, num, arr2);
  71.     for (int i = 0; i<num; i++)
  72.         output(ch[i], &i, arr2[i]);
  73.     printf("\n кол-во перестановок - %d \n", amount);
  74.     system("pause");
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement