SHARE
TWEET

Untitled

a guest Dec 14th, 2019 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4.  
  5. void sortArrayLowToBig(long input[], long length)
  6. {
  7.     for (long i = 0; i < length; i++)
  8.     {
  9.         for (long k = 0; k < length; k++)
  10.         {
  11.             long temp = input[k];
  12.             if (input[k] > input[k + 1])
  13.             {
  14.                 input[k] = input[k + 1];
  15.                 input[k + 1] = temp;
  16.             }
  17.         }
  18.     }
  19. }
  20. long stringLength(char string[])
  21. {
  22.     long len = 0;
  23.     for (long i = 0; i <= 512; i++)
  24.     {
  25.         if (string[i] == '\0')
  26.         {
  27.             return len;
  28.         }
  29.         len++;
  30.     }
  31. }
  32. long stringToInt(char string[])
  33. {
  34.     long mul = 1;
  35.     long outNum = 0, positive = 1;
  36.     long length = stringLength(string);
  37.     for (long i = length - 1; i >= 0; i--)
  38.     {
  39.         if (string[i] == 45)
  40.         {
  41.             positive = -1;
  42.         }
  43.         else
  44.         {
  45.             outNum += (string[i] - 48) * mul;
  46.             mul *= 10;
  47.         }
  48.     }
  49.     return outNum * positive;
  50. }
  51. long validatedIntInput(char string[])
  52. {
  53.     //проверява дали е инт по ascii
  54.     long length = stringLength(string);
  55.     for (long i = 0; i < length; i++)
  56.     {
  57.         if (string[i] < 48 && string[i] > 57)
  58.         {
  59.             return -1;
  60.         }
  61.     }
  62.     return stringToInt(string);
  63. }
  64. void newArray(long vhod[], long sortedArray[], int &sortedArrayLenght)
  65. {
  66.     int smallesNum = vhod[0];
  67.     int mqstoVInput = 0;
  68.     int count = 0;
  69.     for (int i = 1; i < 100; i++)
  70.     {
  71.         if (vhod[i] < smallesNum)
  72.         {
  73.             smallesNum = vhod[i];
  74.             mqstoVInput = i+1;
  75.         }
  76.     }
  77.     for (int y = mqstoVInput; y < 100; y++)
  78.     {
  79.         sortedArray[count] = vhod[y];
  80.         count++;
  81.     }
  82.     sortedArrayLenght = count;
  83. }
  84. void startMenu(long vhod[], int &NumsCounter)
  85. {
  86.     system("CLS");
  87.     int naiGolqmaNechetnaCifra = 1;
  88.     int edinici = 0;
  89.     int troiki = 0;
  90.     int petici = 0;
  91.     int sedmici = 0;
  92.     int devqtki = 0;
  93.     int chislo;
  94.     char inputString[128];
  95.     for (long i = 0; i <= 99; i++)
  96.     {
  97.         //printf("You must enter %d more numbers : \n", 100 - i);
  98.         //scanf("%s", &inputString);
  99.         chislo = rand();                                  //!!! ред 99 и 100 ти генерират масив от 100 елемента за да не си играеш да го
  100.         itoa(chislo, inputString, 10);                    //въвеждаш сам , 97 и 98 са ти стандртния вход но са сложени като коментари за да не го вкарваш на ръка а автоматично.
  101.         for (int y = 0; y < 128; y++)                     //Боря нечетни цифри
  102.         {                                                 //след което най-голямата
  103.             if (inputString[y] != '\0')                   //срещната нечетна цифра
  104.             {                                             //присвоявам колко пъти съм срещнал
  105.                 if (inputString[y] == '1')               
  106.                 {
  107.                     edinici++;
  108.                 }
  109.                 else if (inputString[y] == '3')
  110.                 {
  111.                     troiki++;
  112.                 }
  113.                 else if (inputString[y] == '5')
  114.                 {
  115.                     petici++;
  116.                 }
  117.                 else if (inputString[y] == '7')
  118.                 {
  119.                     sedmici++;
  120.                 }
  121.                 else if (inputString[y] == '9')
  122.                 {
  123.                     devqtki++;
  124.                 }
  125.             }
  126.             else y = 128;
  127.         }
  128.         if (devqtki > 0) NumsCounter = devqtki;
  129.         else if (sedmici > 0) NumsCounter = sedmici;
  130.         else if (petici > 0) NumsCounter = petici;
  131.         else if (troiki > 0) NumsCounter = troiki;
  132.         else if (edinici > 0) NumsCounter = edinici;
  133.         vhod[i] = validatedIntInput(inputString);
  134.         system("CLS");
  135.     }
  136. }
  137. void saveFile(long vhod[100], int &lineWithLowestNegNum)
  138. {
  139.     system("CLS");
  140.     char inputName[128];
  141.     int a = 100 / 8;
  142.     int b = 100 % 8;
  143.     long smallestNeg = 0;
  144.     printf("Enter file name : \n");
  145.     scanf("%s", &inputName);
  146.  
  147.     FILE* file;
  148.     file = fopen(inputName, "w+");
  149.  
  150.     if (file)
  151.     {
  152.         for (long i = 0; i < a ; i++)
  153.         {
  154.             fprintf(file, "%i %i %i %i %i %i %i %i\n",
  155.                 vhod[i * 8], vhod[i * 8 + 1], vhod[i * 8 + 2], vhod[i * 8 + 3],
  156.                 vhod[i * 8 + 4], vhod[i * 8 + 5], vhod[i * 8 + 6], vhod[i * 8 + 7]);
  157.             if(vhod[i * 8] < 0 && vhod[i * 8] <= smallestNeg)
  158.             {
  159.                 smallestNeg = vhod[i * 8];
  160.                 lineWithLowestNegNum = i + 1;
  161.             }
  162.             if (vhod[i * 8 +1] < 0 && vhod[i * 8+1] <= smallestNeg)
  163.             {
  164.                 smallestNeg = vhod[i * 8+1];
  165.                 lineWithLowestNegNum = i + 1;
  166.             }
  167.             if (vhod[i * 8+2] < 0 && vhod[i * 8+2] <= smallestNeg)
  168.             {
  169.                 smallestNeg = vhod[i * 8+2];
  170.                 lineWithLowestNegNum = i + 1;
  171.             }
  172.             if (vhod[i * 8+3] < 0 && vhod[i * 8+3] <= smallestNeg)
  173.             {
  174.                 smallestNeg = vhod[i * 8+3];
  175.                 lineWithLowestNegNum = i + 1;
  176.             }
  177.             if (vhod[i * 8+4] < 0 && vhod[i * 8+4] <= smallestNeg)
  178.             {
  179.                 smallestNeg = vhod[i * 8+4];
  180.                 lineWithLowestNegNum = i + 1;
  181.             }
  182.             if (vhod[i * 8+5] < 0 && vhod[i * 8+5] <= smallestNeg)
  183.             {
  184.                 smallestNeg = vhod[i * 8+5];
  185.                 lineWithLowestNegNum = i + 1;
  186.             }
  187.             if (vhod[i * 8+6] < 0 && vhod[i * 8+6] <= smallestNeg)
  188.             {
  189.                 smallestNeg = vhod[i * 8+6];
  190.                 lineWithLowestNegNum = i + 1;
  191.             }
  192.             if (vhod[i * 8+7] < 0 && vhod[i * 8+7] <= smallestNeg)
  193.             {
  194.                 smallestNeg = vhod[i * 8+7];
  195.                 lineWithLowestNegNum = i + 1;
  196.             }
  197.  
  198.         }
  199.         if (b > 0)
  200.         {
  201.             for (int c = 0; c < b; c++)
  202.             {
  203.                 fprintf(file, "%i ", vhod[(100 - b) + c]);
  204.             }
  205.         }
  206.         fprintf(file, "\n %i \n", lineWithLowestNegNum);
  207.     }
  208.     else
  209.     {
  210.         printf("file could not be found or created");
  211.     }
  212.  
  213.     fclose(file);
  214. }
  215. void loadFile(long vhod[100], int &lineWithLowestNegNum)
  216. {
  217.     system("CLS");
  218.     char inputFileName[256];
  219.     int counting8s = 0;
  220.     printf("Enter file name : ");
  221.     scanf("%s", &inputFileName);
  222.  
  223.     char num[255];
  224.     char num1[255];
  225.     char num2[255];
  226.     char num3[255];
  227.     char num4[255];
  228.     char num5[255];
  229.     char num6[255];
  230.     char num7[255];
  231.     char lines[5];
  232.  
  233.     FILE* file = fopen(inputFileName, "r");
  234.  
  235.     for (long i = 0; i < (100/8); i++)
  236.     {
  237.         fscanf(file, "%s %s %s %s %s %s %s %s\n", num, num1, num2, num3, num4, num5, num6, num7);
  238.  
  239.         vhod[i * 8] = validatedIntInput(num);
  240.         vhod[i * 8 + 1] = validatedIntInput(num1);
  241.         vhod[i * 8 + 2] = validatedIntInput(num2);
  242.         vhod[i * 8 + 3] = validatedIntInput(num3);
  243.         vhod[i * 8 + 4] = validatedIntInput(num4);
  244.         vhod[i * 8 + 5] = validatedIntInput(num5);
  245.         vhod[i * 8 + 6] = validatedIntInput(num6);
  246.         vhod[i * 8 + 7] = validatedIntInput(num7);
  247.     }
  248.     fscanf(file, "%s %s %s %s\n", num, num1, num2, num3);
  249.     vhod[96] = validatedIntInput(num);
  250.     vhod[97] = validatedIntInput(num1);
  251.     vhod[98] = validatedIntInput(num2);
  252.     vhod[99] = validatedIntInput(num3);
  253.     fscanf(file, "%s \n", lines);
  254.     lineWithLowestNegNum = validatedIntInput(lines);
  255.  
  256.     fclose(file);
  257.  
  258.     system("PAUSE");
  259. }
  260. void printArray(long vhod[100], int NumsCounter, int lineWithLowestNegNum)
  261. {
  262.     system("CLS");
  263.     printf("Array Elements : \n");
  264.  
  265.     for (long i = 0; i <= 99; i++)
  266.     {
  267.         printf("%d\n", vhod[i]);
  268.     }
  269.     if (NumsCounter != 0)
  270.     {
  271.         printf("%d puti sreshtanto nechetno chislo s nai golqm ascii kod v sortiraniq masiv", NumsCounter);
  272.     }
  273.     if (lineWithLowestNegNum != 0)
  274.     {
  275.         printf("Line in which lowest negative number can be spotted: %d", lineWithLowestNegNum);
  276.     }
  277.  
  278.     printf("Press enter to go back to the main menu. \n");
  279.     system("PAUSE");
  280. }
  281. void printNewArray(long sortedArray[],int sortedArrayLenght)
  282. {
  283.     system("CLS");
  284.     printf("Sorted array elements : \n");
  285.  
  286.     for (long i = 0; i < sortedArrayLenght; i++)
  287.     {
  288.         printf("%d\n", sortedArray[i]);
  289.     }
  290.    
  291.     printf("Press enter to go back to the main menu. \n");
  292.     system("PAUSE");
  293. }
  294. long main()
  295. {
  296.     long vhod[100];
  297.     long sortedArray[100];
  298.     int sortedArrayLenght = 0;
  299.     int lineWithLowestNegNum = 0;
  300.    
  301.     int NumsCounter = 0;
  302.  
  303.     long choice = 0;
  304.  
  305.     while (choice != 6)
  306.     {
  307.         system("CLS");
  308.         printf("1. Add / Change the input array.\n");
  309.         printf("2. Show the input array.\n");
  310.         printf("3. Show the sorted array.\n");
  311.         printf("4. Save to file.\n");
  312.         printf("5. Load from file.\n");
  313.         printf("6. Exit.\n");
  314.         scanf("%d", &choice);
  315.  
  316.         if (choice == 1)
  317.         {
  318.             // въвеждаме или променяме масив
  319.             startMenu(vhod, NumsCounter);
  320.             newArray(vhod, sortedArray, sortedArrayLenght);
  321.             // сортираме sortedArray
  322.             sortArrayLowToBig(sortedArray, sortedArrayLenght);
  323.         }
  324.         else if (choice == 2)
  325.         {
  326.             printArray(vhod, NumsCounter, lineWithLowestNegNum);
  327.         }
  328.         else if (choice == 3)
  329.         {
  330.             printNewArray(sortedArray, sortedArrayLenght);
  331.         }
  332.         else if (choice == 4)
  333.         {
  334.             saveFile(vhod, lineWithLowestNegNum);
  335.         }
  336.         else if (choice == 5)
  337.         {
  338.             loadFile(vhod, lineWithLowestNegNum);
  339.         }
  340.         Sleep(50);
  341.     }
  342.  
  343.     return 0;
  344. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top