Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <mpi.h>
  4. #include <string.h>
  5. #include <unistd.h>
  6.  
  7. #define MASTER 0
  8.  
  9. int main(int argc, char **argv)
  10. {
  11.    int id, nproc;
  12.    char stavek[100];
  13.  
  14.    MPI_Init(&argc, &argv);
  15.    MPI_Comm_size(MPI_COMM_WORLD, &nproc);
  16.    MPI_Comm_rank(MPI_COMM_WORLD, &id);
  17.  
  18.    if (id == MASTER)
  19.    {
  20.       printf("Vnesite stavek za igro telefon: ");
  21.       fgets(stavek, 100, stdin);
  22.       MPI_Send(stavek, 100, MPI_CHAR, id + 1, 0, MPI_COMM_WORLD);
  23.       MPI_Recv(stavek, 100, MPI_CHAR, nproc - 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
  24.       printf("%d -> %d: %s\n",nproc-1,id, stavek);
  25.    }
  26.    else
  27.    {
  28.       MPI_Recv(stavek, 100, MPI_CHAR, id - 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
  29.       sleep(id-1);
  30.       printf("%d -> %d: %s\n",id-1,id, stavek);
  31.       for (int i = 0; i < 100; i++)
  32.       {
  33.          if (id == 1)
  34.          {
  35.             if (stavek[i] == 'e')
  36.             {
  37.                stavek[i] = 'a';
  38.             }
  39.             else if (stavek[i] == 'E')
  40.             {
  41.                stavek[i] = 'A';
  42.             }
  43.          }
  44.          else if (id == 2)
  45.          {
  46.             if (stavek[i] == 't')
  47.             {
  48.                stavek[i] = 'm';
  49.             }
  50.             else if (stavek[i] == 'T')
  51.             {
  52.                stavek[i] = 'M';
  53.             }
  54.          }
  55.          else if (id == 3)
  56.          {
  57.             if (stavek[i] == 'h')
  58.             {
  59.                stavek[i] = 'p';
  60.             }
  61.             else if (stavek[i] == 'H')
  62.             {
  63.                stavek[i] = 'P';
  64.             }
  65.          }
  66.       }
  67.       MPI_Send(stavek, 100, MPI_CHAR, (id + 1) % nproc, 0, MPI_COMM_WORLD);
  68.    }
  69.  
  70.    MPI_Finalize();
  71.    return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement