Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define ITERATION_COUNT 10000000
- int ReadString(char* str, int arraySize);
- int main()
- {
- /*
- ** Pour éviter au compilateur d'être trop sauvage sur les optimisations
- ** et de donner un temps d'exécution nul, on prend une variable donnée par l'utilisateur.
- */
- char str[50];
- char c;
- int i, iteration, length;
- clock_t t1_1, t1_2;
- clock_t t2_1, t2_2;
- printf("Entrez une chaine (50 caracteres max): ");
- length = ReadString(str, 50);
- fflush(stdin); /* Vade retro Léonidas */
- /* L'algorithme ici est débile, il transforme une lettre en une autre, rien de plus */
- /* if/else if */
- t1_1 = clock();
- for (iteration = 0; iteration < ITERATION_COUNT; ++iteration)
- {
- for (i = 0; i < length; ++i)
- {
- if (str[i] == 'a')
- c = 'p';
- else if (str[i] == 'b')
- c = 'o';
- else if (str[i] == 'c')
- c = 'i';
- else if (str[i] == 'd')
- c = 'u';
- else if (str[i] == 'e')
- c = 'y';
- else if (str[i] == 'f')
- c = 't';
- else if (str[i] == 'g')
- c = 'r';
- else if (str[i] == 'h')
- c = 'e';
- else if (str[i] == 'i')
- c = 'z';
- else if (str[i] == 'j')
- c = 'a';
- else if (str[i] == 'k')
- c = 'm';
- else if (str[i] == 'l')
- c = 'l';
- else if (str[i] == 'm')
- c = 'k';
- else if (str[i] == 'n')
- c = 'j';
- else if (str[i] == 'o')
- c = 'h';
- else if (str[i] == 'p')
- c = 'g';
- else if (str[i] == 'q')
- c = 'f';
- else if (str[i] == 'r')
- c = 'd';
- else if (str[i] == 's')
- c = 's';
- else if (str[i] == 't')
- c = 'q';
- else if (str[i] == 'u')
- c = 'n';
- else if (str[i] == 'v')
- c = 'b';
- else if (str[i] == 'w')
- c = 'v';
- else if (str[i] == 'x')
- c = 'c';
- else if (str[i] == 'y')
- c = 'x';
- else if (str[i] == 'z')
- c = 'w';
- else
- c = '?';
- str[i] = c;
- }
- }
- t1_2 = clock();
- /* switch */
- t2_1 = clock();
- for (iteration = 0; iteration < ITERATION_COUNT; ++iteration)
- {
- for (i = 0; i < length; ++i)
- {
- switch (str[i])
- {
- case 'a':
- c = 'p';
- break;
- case 'b':
- c = 'o';
- break;
- case 'c':
- c = 'i';
- break;
- case 'd':
- c = 'u';
- break;
- case 'e':
- c = 'y';
- break;
- case 'f':
- c = 't';
- break;
- case 'g':
- c = 'r';
- break;
- case 'h':
- c = 'e';
- break;
- case 'i':
- c = 'z';
- break;
- case 'j':
- c = 'a';
- break;
- case 'k':
- c = 'm';
- break;
- case 'l':
- c = 'l';
- break;
- case 'm':
- c = 'k';
- break;
- case 'n':
- c = 'j';
- break;
- case 'o':
- c = 'h';
- break;
- case 'p':
- c = 'g';
- break;
- case 'q':
- c = 'f';
- break;
- case 'r':
- c = 'd';
- break;
- case 's':
- c = 's';
- break;
- case 't':
- c = 'q';
- break;
- case 'u':
- c = 'n';
- break;
- case 'v':
- c = 'b';
- break;
- case 'w':
- c = 'v';
- break;
- case 'x':
- c = 'c';
- break;
- case 'y':
- c = 'x';
- break;
- case 'z':
- c = 'w';
- break;
- default:
- c = '?';
- break;
- }
- }
- }
- t2_2 = clock();
- printf("Version \"else if\": %g\n", ((float) (t1_2-t1_1)) / CLOCKS_PER_SEC);
- printf("Version switch : %g\n", ((float) (t2_2-t2_1)) / CLOCKS_PER_SEC);
- getchar(); /* Une attente si CodeBlocks n'est pas bien réglé */
- return 0;
- }
- int ReadString(char* str, int arraySize)
- {
- int c;
- int i;
- int maxLength = arraySize-1;
- char* ptr = str;
- fflush(stdin); /* El diablo */
- for (i = 0; i < maxLength; ++i)
- {
- c = getchar();
- if (c == '\n' || c == EOF)
- break;
- *ptr++ = (char) c;
- }
- *ptr = '\0';
- return i;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement