Advertisement
AntonHaan

Lab 2

Dec 8th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.06 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <ctype.h>
  4. #include <math.h>
  5. #include <stdbool.h>
  6. #include <time.h>
  7.  
  8. #define MAX 100
  9.  
  10. int avsluta() {
  11.  printf("\n\tVi ses\n\n");
  12.  return 0;
  13. }
  14.  
  15. /* Funktion för att fylla datamängden talrad med slumptal */
  16. int slumpatal(int talrad[]) {
  17. int r;
  18.    srand(time(NULL));
  19.    
  20.     for (r = 0; r < MAX; ++r) {
  21.                     talrad[r]=rand()%901;      
  22.         }
  23.                 printf("\tTalen är nu slumpade!");
  24.         printf("\n");
  25.    
  26.  return 0;
  27. }
  28.  
  29. /* Funktion för att slumpa tal */
  30.     int skrivut(int talrad[]){
  31.         int r;         
  32.                      for (r = 0; r < MAX; ++r) {
  33.                          printf("%d \t",talrad[r]);
  34.       if (r%10==9) printf("\n\n");
  35.                      }     
  36.         return 0;  
  37.     }
  38.  
  39. /* Funktion för att sortera tal*/
  40. int sortera(int talrad[]) {
  41.     bool swapped;
  42.  do {
  43.   int i;
  44.   swapped = false;
  45.   for (i = 0; i < MAX - 1; i = i + 1)
  46.    if (talrad[i] > talrad[i + 1]) {
  47.     int temp = talrad[i];
  48.     talrad[i] = talrad[i + 1];
  49.     talrad[i + 1] = temp;
  50.     swapped = true;
  51.    }
  52.  } while (swapped == true);
  53.    
  54.     printf("\tTalen är nu sorterade! Tryck 2 för att se följden.\n");
  55.  return 0;
  56. }
  57.  
  58. /* Funktion för att räkna ut median, högsta och lägsta värde*/
  59. int median (int talrad[]){
  60.     double median = ((talrad[49]+talrad[50])/2);
  61. printf("\tMinsta värdet är: %d\n", talrad[0]);
  62.     printf("\tStörsta värdet är: %d\n", talrad[99]);
  63.     printf("\tMedianen är: %.2f\n", median) ;
  64.    
  65.     return 0;
  66. }
  67.  
  68. /* Funktion för att söka tal */
  69. int sok(int talrad[]){
  70.     int tal,r,k,i,hittat;
  71.     printf("\tSkriv in ett tal som du vill hitta i tabellen:\n\n\t");
  72.         scanf("%d",&tal);
  73.     i=0;
  74.     hittat = 0;
  75.     do{
  76.     for (r = 0; r < 10; ++r) {
  77.         for (k = 0; k < 10; ++k) {
  78.    
  79.     if (talrad[i] ==tal){
  80.         printf("\n\tTalet finns på rad %d, kolumn %d\n\n",r+1,k+1);
  81.         hittat = 1;
  82.     }
  83.                    
  84.         i++;
  85.     }
  86.     }
  87.     }
  88.         while (i<9);
  89.             if (hittat == 0)
  90.             printf("\n\tTalet existerar inte i tabellen!\n\n");    
  91.                    
  92.                     return 0;
  93.                 }
  94.  
  95. /* Funktion som skriver ut meny på skärmen  */
  96. int meny() {
  97.  printf("\n\n");
  98.  printf("\t0: Avsluta\n");
  99.  printf("\t1: Slumpa tal\n");
  100.  printf("\t2: Skriv ut talföljden i en tabell\n");
  101.  printf("\t3: Sortera din talföljd\n");
  102.  printf("\t4: Största, minsta värde samt median av talföljden\n");
  103.  printf("\t5: Sök efeter ett tal i talföljden\n");
  104.  /*rad för uppgift 6*/
  105.  printf("\n\tGör ditt val: ");
  106.  return 0;
  107. }
  108.  
  109. int main() {
  110.  int talrad[MAX]; /* Datamängd som ska bearbetas    */
  111.  int val, val1, val3;         /* Hjälpvariabel för menystyrning */
  112. val1 = 0;
  113.     val3=0;
  114.  do {
  115.   meny();
  116.   scanf("%d", &val);
  117.   printf("\n");
  118.   if (val == 0){
  119.    avsluta();
  120.     }
  121.   else if (val == 1){
  122.    slumpatal(talrad);
  123.      val1 = 1;
  124.         val3=0;
  125.  }
  126.      else if (val == 2 && val1==1){
  127.    skrivut(talrad);
  128.      }
  129.      else if (val == 3 && val1==1){
  130.    sortera(talrad);
  131.      val3=1;
  132.      }
  133.         else if (val == 4 && val1==1 && val3==1){
  134.         median(talrad);
  135.         }  
  136.        
  137.         else if (val == 5 && val1==1 && val3==1) {
  138.         sok(talrad);
  139.         }
  140.      /*Rad för uppgift 6*/
  141.    
  142.      else
  143.    printf("\t\tOgiltgt val!\n\n");
  144.  } while (val != 0);
  145.  return 0;
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement