Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 27.42 KB | None | 0 0
  1. Задача  №1: Да се разменят стойностите на две променливи (buffer).
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main()
  6. {
  7.     int a,b,c;
  8.     printf("a = ");
  9.     scanf("%d", &a);
  10.     printf("b = ");
  11.     scanf("%d", &b);
  12.     c = a;
  13.     a = b;
  14.     b = c;
  15.     printf("a = %d, b = %d", a, b);
  16.     return 0;
  17.  
  18. }
  19.  
  20. Задача  №2: Да се разменят стойностите на две променливи (без buffer).
  21. #include <stdio.h>
  22. #include <stdlib.h>
  23.  
  24. int main()
  25. {
  26.     int a, b;
  27.     printf("a = ");
  28.     scanf("%d", &a);
  29.     printf("b = ");
  30.     scanf("%d", &b);
  31.     a = a + b;
  32.     b = a - b;
  33.     a = a - b;
  34.     printf("a = %d, b = %d", a,b);
  35.     return 0;
  36. }
  37.  
  38. Задача  №3: Да се намери най – голямото от n числа.
  39. #include <stdio.h>
  40. #include <stdlib.h>
  41.  
  42. int main()
  43. {
  44.     int n, a, max;
  45.     do
  46.     {
  47.         printf("numbers (>0)= ");
  48.         scanf("%d", &n);
  49.     }
  50.     while(n<=0);
  51.     printf("a = ");
  52.     scanf("%d", &a);
  53.     max = a;
  54.     int i = 2;
  55.     while(i<=n)
  56.     {
  57.         printf("a = ");
  58.         scanf("%d", &a);
  59.         if(a > max) max = a;
  60.         i++;
  61.     }
  62.     printf("max = %d", max);
  63.     return 0;
  64. }
  65.  
  66. Задача  №4: Да се намери сумата на естествените числа от 1 до n.
  67. #include <stdio.h>
  68. #include <stdlib.h>
  69.  
  70. int main()
  71. {
  72.     int n;
  73.     do
  74.     {
  75.         printf("n (>0)= ");
  76.         scanf("%d", &n);
  77.     }
  78.     while(n <= 0);
  79.     int i = 1;
  80.     int sum = 0;
  81.     while(i <= n)
  82.     {
  83.         sum += i;
  84.         i++;
  85.     }
  86.     printf("sum = %d", sum);
  87.     return 0;
  88. }
  89.  
  90. Задача  №5: Да се намери сумата на n произволни числа.
  91. #include <stdio.h>
  92. #include <stdlib.h>
  93.  
  94. int main()
  95. {
  96.     int n;
  97.     do
  98.     {
  99.         printf("n (>0)= ");
  100.         scanf("%d", &n);
  101.     }
  102.     while(n<=0);
  103.     int i = 1;
  104.     int sum = 0;
  105.     while(i<=n)
  106.     {
  107.         int a;
  108.         printf("a = ");
  109.         scanf("%d", &a);
  110.         sum += a;
  111.         i++;
  112.     }
  113.     printf("sum = %d", sum);
  114.     return 0;
  115. }
  116.  
  117. Задача  №6: Да се намери средният успех на учениците от входното ниво по БЕЛ.
  118. #include <stdio.h>
  119. #include <stdlib.h>
  120. int main()
  121. {
  122.         int students, grade;
  123.     do
  124.         {
  125.                        printf("Students (>0): ");
  126.                 scanf("%d", students);
  127.     }
  128.     while(students < 1);
  129.     int i = 1, sumOfGrades = 0;
  130.         while(i <= students)
  131.      {
  132.             do
  133.         {
  134.                     printf("Grade of student %d: ", i);
  135.                     scanf("%d", grade);
  136.             }
  137.         while(grade < 2 || grade > 6);
  138.         sumOfGrades += grade;
  139.             i++;
  140.       }
  141.       float average = sumOfGrades / students;
  142.         printf("Average: %f", average);
  143.         return 0;
  144. }
  145. Задача  №7: Да се определи дали дадено число е просто или не.
  146. #include <stdio.h>
  147. #include <stdlib.h>
  148.  
  149. int main()
  150. {
  151.     int number;
  152.     do
  153.     {
  154.         printf("number (>=2)= ");
  155.         scanf("%d", &number);
  156.     }
  157.     while(number < 2);
  158.     int sumofdividers = 0;
  159.     int divider = 1;
  160.     while(number >= divider)
  161.     {
  162.         if(number % divider == 0)
  163.             sumofdividers++;
  164.         divider++;
  165.     }
  166.     if(sumofdividers == 2)
  167.         printf("%d is simple number", number);
  168.     else
  169.         printf("%d is not simple number", number);
  170.     return 0;
  171. }
  172.  
  173. Задача  №8: Да се намери максималното от n числа, но само от тези, които се делят на 3.
  174. #include <stdio.h>
  175. #include <stdlib.h>
  176.  
  177. int main()
  178. {
  179.     int n;
  180.     do
  181.     {
  182.         printf("numbers (>0)= ");
  183.         scanf("%d", &n);
  184.     }
  185.     while(n<=0);
  186.     int a;
  187.     printf("a = ");
  188.     scanf("%d", &a);
  189.     int max = a;
  190.     int i = 2;
  191.     while(i<=n)
  192.     {
  193.         printf("a = ");
  194.         scanf("%d", &a);
  195.         if(a % 3 == 0)
  196.         {
  197.             if(a > max) max = a;
  198.         }
  199.         i++;
  200.     }
  201.     printf("max = %d", max);
  202.     return 0;
  203. }
  204.  
  205. Задача  №9: Да се намери броя на цифрите на дадено естествено число.
  206. #include <stdio.h>
  207. #include <stdlib.h>
  208.  
  209. int main()
  210. {
  211.     int num;
  212.     do
  213.     {
  214.         printf("number (>0)= ");
  215.         scanf("%d", &num);
  216.     }
  217.     while(num<=0);
  218.     int count = 0;
  219.     while(num != 0)
  220.     {
  221.         count++;
  222.         num /= 10;
  223.     }
  224.     printf("Total digits: %d", count);
  225.     return 0;
  226. }
  227.  
  228. Задача  №10: Да се намери сумата от цифрите на дадено естествено число.
  229. #include <stdio.h>
  230. #include <stdlib.h>
  231.  
  232. int main()
  233. {
  234.     int num;
  235.     do
  236.     {
  237.         printf("number (>0)= ");
  238.         scanf("%d", &num);
  239.     }
  240.     while(num<=0);
  241.     int sum = 0;
  242.     int digit;
  243.     while(num != 0)
  244.     {
  245.         digit = num % 10;
  246.         sum += digit;
  247.         num /= 10;
  248.     }
  249.     printf("Sum of digits: %d", sum);
  250.     return 0;
  251. }
  252.  
  253. Задача  №11: Да се получи числото m, записано с цифрите на естественото число n, но в обратен ред.
  254. #include <stdio.h>
  255. #include <stdlib.h>
  256.  
  257. int main()
  258. {
  259.     int num;
  260.     do
  261.     {
  262.         printf("number (>0)= ");
  263.         scanf("%d", &num);
  264.     }
  265.     while(num<=0);
  266.     int reverse = 0;
  267.     while (num != 0)
  268.     {
  269.     reverse *= 10;
  270.     reverse += num%10;
  271.     num /= 10;
  272.     }
  273.  
  274.     printf("Reversed number is %d", reverse);
  275.     return 0;
  276. }
  277.  
  278. Задача  №12: Да се получи числото m, като съдържа четните цифри на n в същия ред.
  279. #include <stdio.h>
  280. #include <stdlib.h>
  281.  
  282. int main()
  283. {
  284.     int num;
  285.     do
  286.     {
  287.         printf("number (>0)= ");
  288.         scanf("%d", &num);
  289.     }
  290.     while(num<=0);
  291.     int m = 0;
  292.     int j = 0;
  293.     int digit;
  294.     while(num != 0)
  295.     {
  296.         digit = num % 10;
  297.         if(digit % 2 == 0)
  298.         {
  299.             m *=10;
  300.             m += digit;
  301.         }
  302.         num /= 10;
  303.     }
  304.     while (m != 0)
  305.     {
  306.         j *= 10;
  307.         j += m%10;
  308.         m /= 10;
  309.     }
  310.     printf("Number with even digits of %d: %d", num, j);
  311.     return 0;
  312. }
  313.  
  314. Задача  №13: Да се определи колко пъти дадена цифра се среща в дадено естествено число.
  315. #include <stdio.h>
  316. #include <stdlib.h>
  317.  
  318. int main()
  319. {
  320.     int num;
  321.     do
  322.     {
  323.         printf("number (>0)= ");
  324.         scanf("%d", &num);
  325.     }
  326.     while(num<=0);
  327.     int digit;
  328.     do
  329.     {
  330.         printf("digit (0<=digit<=9)= ");
  331.         scanf("%d", &digit);
  332.     }
  333.     while((digit < 0)||(digit > 9));
  334.     int count = 0;
  335.     int m;
  336.     while(num != 0)
  337.     {
  338.         m = num%10;
  339.         if(m == digit)count++;
  340.         num /= 10;
  341.     }
  342.     printf("The count of %d: %d", digit, count);
  343.     return 0;
  344. }
  345.  
  346. Задача  №14: Да се определи дали дадена цифра се среща в даденото число n (Отг. „yes/no”).
  347. int main()
  348. {
  349.   int number = 0;
  350.   int number_to_devide = 0;
  351.   int digit = 0;
  352.   int current_digit_to_check = 0;
  353.  
  354.   do
  355.     {
  356.       printf("Number = ");
  357.       scanf("%d", &number);
  358.     }
  359.   while (number < 0);
  360.   number_to_devide = number;
  361.   do
  362.     {
  363.       printf("Digit = ");
  364.       scanf("%d", &digit);
  365.     }
  366.   while (digit < 0 || digit > 9);
  367.   if (number_to_devide == digit)
  368.     {
  369.  
  370.       printf("The number %d contains the digit %d!\n", number, digit);
  371.       return 0;
  372.     }
  373.  
  374.   while (number_to_devide > 0)
  375.     {
  376.       current_digit_to_check = number_to_devide % 10;
  377.  
  378.       if (current_digit_to_check == digit)
  379.         {
  380.           printf("The number %d contains the digit %d!\n", number, digit);
  381.           return 0;
  382.         }
  383.  
  384.       number_to_devide /= 10;
  385.     }
  386.   printf("The number %d does not contain the digit %d!\n", number, digit);
  387.   return 0;
  388. }
  389.  
  390. Задача  №15: Да се намери an, като a – float и n – int.
  391. #include <stdio.h>
  392. #include <stdlib.h>
  393.  
  394. int main() {
  395.     float base;
  396.     int exp;
  397.     double result = 1;
  398.     printf("Enter a base number: ");
  399.     scanf("%f", &base);
  400.     printf("Enter an exponent: ");
  401.     scanf("%d", &exp);
  402.     if(exp >= 0)
  403.     {
  404.         while (exp > 0)
  405.         {
  406.             result *= base;
  407.             --exp;
  408.         }
  409.     }
  410.     else
  411.     {
  412.         while(exp < 0)
  413.         {
  414.             result /= base;
  415.             exp++;
  416.         }
  417.     }
  418.     printf("Result = %lf", result);
  419.     return 0;
  420. }
  421.  
  422.  
  423.  
  424. Задача  №16: Да се намери n-то число на Фибоначи.
  425. #include <stdio.h>
  426. #include <stdlib.h>
  427.  
  428. int main()
  429. {
  430.  int n0=1,n1=1,n2,counter,number;
  431.  printf("Enter the Nth of Fibonacci numbers:");
  432.  scanf("%d",&number);
  433.  for(counter=1;counter<number;counter++)
  434.  {
  435.   n2=n0+n1;
  436.   n0=n1;
  437.   n1=n2;
  438.  }
  439.   printf("The Fibonacci number: %d",n2);
  440.   return 0;
  441.  }
  442.  
  443. Задача  №17: Да се изведат делителите на дадено естествено число и техния брой.
  444. #include <stdio.h>
  445. #include <stdlib.h>
  446.  
  447. int main()
  448. {
  449.     int n;
  450.     do
  451.     {
  452.         printf("n (>0)= ");
  453.         scanf("%d", &n);
  454.     }
  455.     while(n<=0);
  456.     int i = 1;
  457.     int count = 0;
  458.     while(i<=n)
  459.     {
  460.         if(n % i == 0)
  461.         {
  462.             printf("divider = %d\n", i);
  463.             count += 1;
  464.         }
  465.         i++;
  466.     }
  467.     printf("Count: %d", count);
  468.     return 0;
  469. }
  470.  
  471. Задача  №18: Да се изведат простите делители на дадено естествено число и техния брой.
  472. #include <stdio.h>
  473. #include <stdlib.h>
  474.  
  475. int main()
  476. {
  477.     int number;
  478.     do
  479.     {
  480.         printf("number (>0)= ");
  481.         scanf("%d", &number);
  482.     }
  483.     while(number < 1);
  484.     int countofsimpledividers = 0;
  485.     int divider = 1;
  486.     while(divider<=number)
  487.     {
  488.         if(number % divider == 0)
  489.         {
  490.             int divider2 = 1;
  491.             int countofdividers = 0;
  492.                 while(divider2<=divider)
  493.                 {
  494.                     if(divider % divider2 == 0)
  495.                     countofdividers +=1;
  496.                  divider2++;
  497.                 }
  498.                 if(countofdividers == 2)
  499.                    {
  500.                         printf("Simple divider = %d\n", divider);
  501.                         countofsimpledividers += 1;
  502.                    }
  503.         }
  504.         divider++;
  505.     }
  506.     printf("Count of simple dividers is %d", countofsimpledividers);
  507.     return 0;
  508. }
  509.  
  510. Задача  №18: Да се определи броя на единиците в двоичното представяне на числото n.
  511. #include <stdio.h>
  512. #include <stdlib.h>
  513.  
  514. int main()
  515. {
  516.     long long number_decimal, tempDecimal;
  517.     long long binary = 0;
  518.     int theRest, countOfUnit = 0;
  519.     int place = 1;
  520.     do
  521.     {
  522.         printf("Number = ");
  523.         scanf("%lld", &number_decimal);
  524.     }
  525.     while(number_decimal < 0);
  526.     tempDecimal = number_decimal;
  527.     while(tempDecimal > 0)
  528.     {
  529.         theRest = tempDecimal % 2;
  530.         if(theRest == 1)
  531.         {
  532.            countOfUnit++;
  533.         }
  534.         binary += theRest*place;
  535.         tempDecimal /= 2;
  536.         place *= 10;
  537.     }
  538.     printf("Decimal number = %lld\n", number_decimal);
  539.     printf("Binary number = %lld\n", binary);
  540.     printf("Count of Unit: %d", countOfUnit);
  541.     return 0;
  542. }
  543.  
  544. Задача  №19: Линейно уравнение
  545. #include <stdio.h>
  546. #include <stdlib.h>
  547.  
  548. int main()
  549. {
  550.     int a, b;
  551.     printf("a = ");
  552.     scanf("%d", &a);
  553.     printf("b = ");
  554.     scanf("%d", &b);
  555.     printf("%dx + %d = 0\n", a, b);
  556.     float x = 0;
  557.     if(a!=0 && b!=0)
  558.     {
  559.         x +=(float)-b/a;
  560.         printf("x = %.2f", x);
  561.         return 0;
  562.     }
  563.     if(a == 0)
  564.     {
  565.         if(b==0)
  566.         {
  567.             printf("Each x is a solution");
  568.             return 0;
  569.         }
  570.         else
  571.         {
  572.             printf("The equation has no solution");
  573.             return 0;
  574.         }
  575.     }
  576.     if(b == 0)
  577.     {
  578.         printf("x = 0");
  579.     }
  580.     return 0;
  581. }
  582.  
  583. Задача  №19: Квадратно уравнение
  584. #include <stdio.h>
  585. #include <stdlib.h>
  586.  
  587. int main()
  588. {
  589.     int a, b, c;
  590.     float discriminant = 0, x1 = 0, x2 = 0, valid = 0;
  591.     printf("a = ");
  592.     scanf("%d", &a);
  593.     printf("b = ");
  594.     scanf("%d", &b);
  595.     printf("c = ");
  596.     scanf("%d", &c);
  597.     printf("%dx^2 + %dx + %d = 0\n", a, b, c);
  598.     if(a == 0)
  599.     {
  600.         if(b != 0 && c != 0) //bx+c=0
  601.         {
  602.             x1+=(float) -c/b;
  603.             printf("x = %.2f", x1);
  604.             return 0;
  605.         }
  606.         if(b == 0)
  607.         {
  608.             if(c == 0) //0 = 0
  609.             {
  610.                 printf("Each x is a solution");
  611.                 return 0;
  612.             }
  613.             else //c = 0
  614.             {
  615.                 printf("The equation has no solution");
  616.                 return 0;
  617.             }
  618.         }
  619.         if(c == 0) //bx = 0
  620.         {
  621.             printf("x = 0");
  622.             return 0;
  623.         }
  624.     }
  625.     if(b == 0) //ax2 + c = 0
  626.     {
  627.         if(c == 0) //ax2 =  0
  628.         {
  629.             printf("x = 0");
  630.             return 0;
  631.         }
  632.         if(a != 0 && c != 0)
  633.         {
  634.             valid = -c/a;
  635.             if(valid < 0)
  636.             {
  637.                 printf("The equation has no solution");
  638.                 return 0;
  639.             }
  640.             else
  641.             {
  642.                 x1 += (float)sqrt(-c/a);
  643.                 x2 += (float)-(sqrt(-c/a));
  644.                 printf("x1 = %.2f, x2 = %.2f", x1, x2);
  645.                 return 0;
  646.             }
  647.         }
  648.     }
  649.     if(c == 0)
  650.     {
  651.         if(a!=0 && b!=0) //x(ax + b) = 0
  652.         {
  653.             x2 +=(float)-b/a;
  654.             printf("x1 = 0, x2 = %.2f", x2);
  655.             return 0;
  656.         }
  657.     }
  658.     if(a != 0 && b != 0)
  659.     {
  660.         discriminant += b*b - 4*a*c;
  661.         if(discriminant > 0)
  662.         {
  663.             x1 += (float)(-b + sqrt(discriminant))/(2*a);
  664.             x2 += (float)(-b - sqrt(discriminant))/(2*a);
  665.             printf("x1 = %.2f, x2 = %.2f", x1, x2);
  666.             return 0;
  667.         }
  668.         if(discriminant == 0)
  669.         {
  670.             x1 += (float)-b/(2*a);
  671.             printf("x1 = x2 = %.2f", x1);
  672.             return 0;
  673.         }
  674.         if(discriminant < 0)
  675.         {
  676.             printf("The equation has no solution");
  677.             return 0;
  678.         }
  679.     }
  680. }
  681.  
  682. Задача  №20: Извеждане на ASCII таблицата.
  683. #include <stdio.h>
  684. #include <stdlib.h>
  685.  
  686. int main()
  687. {
  688.    int c;
  689.    for(c = 0; c <= 255; c++)
  690.         printf("\n%c %d", c, c);
  691.    return 0;
  692. }
  693.  
  694. Задача  №21: Програмата да въведе символ, ако този символ е малка буква да изведе съответната голяма и обратното, ако е съвсем друг символ да изведе символа.
  695. #include <stdio.h>
  696. #include <stdlib.h>
  697.  
  698. int main()
  699. {
  700.     char symbol;
  701.     printf("Symbol = ");
  702.     scanf("%c", &symbol);
  703.     if(symbol >= 'a' && symbol <= 'z')
  704.     {
  705.         symbol -= 32;
  706.         printf("Big Letter: %c", symbol);
  707.     }
  708.     else if(symbol >= 'A' && symbol <= 'Z')
  709.     {
  710.         symbol += 32;
  711.         printf("Small Letter: %c", symbol);
  712.     }
  713.     else
  714.         printf("Symbol: %c", symbol);
  715.     return 0;
  716. }
  717.  
  718. Задача  №22: Въвежда се последователност от символи, завършващи с Enter. Да се намери броя на малките букви, големите букви, цифрите и останалите.
  719. #include <stdio.h>
  720. #include <stdlib.h>
  721. #include <conio.h>
  722.  
  723. int main()
  724. {
  725.     char symbol;
  726.     int small = 0, big = 0, digit = 0, other = 0;
  727.     do
  728.     {
  729.         symbol = getchar();
  730.         if(symbol >= 'a' && symbol <= 'z') small += 1;
  731.         else if(symbol >= 'A' && symbol <= 'Z') big += 1;
  732.         else if(symbol >= '0' && symbol <= '9') digit += 1;
  733.         else if(symbol == 10) break;
  734.         else other += 1;
  735.     }
  736.     while(symbol != 10);
  737.     printf("Small Letters: %d\nBig Letters: %d\nDigits: %d\nOthers: %d",
  738.            small, big, digit, other);
  739.     return 0;
  740. }
  741. Задача  №23: Калкулатор.
  742. #include <stdio.h>
  743. #include <stdlib.h>
  744.  
  745. int main()
  746. {
  747.     char op;
  748.     float a, b;
  749.     printf("a = ");
  750.     scanf("%f", &a);
  751.     do
  752.     {
  753.         do
  754.         {
  755.             printf("Enter operation(-,+,*,/0): ");
  756.             op = getche();
  757.         }
  758.         while(op != '+' && op != '-' && op != '*' && op != '/' && op != '=');
  759.         if(op == '=') break;
  760.         printf("\nb = ");
  761.         scanf("%f", &b);
  762.         switch(op)
  763.         {
  764.             case'+': a = a + b; break;
  765.             case'-': a = a - b; break;
  766.             case'*': a = a * b; break;
  767.             case'/': while(b == 0)
  768.                         {
  769.                             printf("\nb = ");
  770.                             scanf("%f", &b);
  771.                         }
  772.                         a = a / b;
  773.                         break;
  774.         }
  775.     }
  776.     while(op != '=');
  777.     printf("\nRezult: %f", a);
  778.     return 0;
  779. }
  780.  
  781. Задача  №24: Въвежда се месец и година като цели числа. Да се определи броя на дните в месеца.
  782. #include <stdio.h>
  783. #include <stdlib.h>
  784.  
  785. int main()
  786. {
  787.     int month, year;
  788.     do
  789.     {
  790.         printf("Month (1 to 12): ");
  791.         scanf("%d", &month);
  792.     }
  793.     while(month < 1 || month > 12);
  794.     printf("Year: ");
  795.     scanf("%d", &year);
  796.     switch(month)
  797.     {
  798.         case 1: case 3: case 5: case 7:
  799.             case 8: case 10: case 12:
  800.                 printf("Days: 31"); break;
  801.         case 4: case 6: case 9: case 11:
  802.                 printf("Days: 30"); break;
  803.         case 2:
  804.                 if (year % 4 == 0)
  805.                     {
  806.                         if (year % 100 == 0)
  807.                         {
  808.                             if (year % 400 == 0)
  809.                                 printf("Days: 29");
  810.                             else
  811.                             printf("Days: 28");
  812.                         }
  813.                         else
  814.                             printf("Days: 29");
  815.                     }
  816.                 else
  817.                     printf("Days: 28");
  818.                 break;
  819.     }
  820.     return 0;
  821. }
  822.  
  823. Задача  №25: Въвежда се ден, месец, година. Да се определи кой пореден ден от годината е.
  824. #include <stdio.h>
  825. #include <stdlib.h>
  826.  
  827. int main()
  828. {
  829.     int day, month, year, maxDays = 0, yday = 0, leapOrNotYear = 0;
  830.     printf("Year: ");
  831.     scanf("%d", &year);
  832.     if (year % 4 == 0)
  833.         {
  834.             if (year % 100 == 0)
  835.                 {
  836.                     if (year % 400 == 0)
  837.                             leapOrNotYear += 1;
  838.                     else
  839.                             leapOrNotYear += 0;
  840.                 }
  841.             else
  842.                 leapOrNotYear += 1;
  843.         }
  844.     else
  845.         leapOrNotYear += 0;
  846.     do
  847.     {
  848.         printf("Month (1 to 12): ");
  849.         scanf("%d", &month);
  850.     }
  851.     while(month < 1 || month > 12);
  852.     switch(month)
  853.     {
  854.         case 1: case 3: case 5: case 7:
  855.             case 8: case 10: case 12:
  856.                 maxDays += 31; break;
  857.         case 4: case 6: case 9: case 11:
  858.                 maxDays += 30; break;
  859.         case 2:
  860.                 if (leapOrNotYear == 0) maxDays += 28;
  861.                 else if(leapOrNotYear == 1) maxDays += 29;
  862.                 break;
  863.     }
  864.     do
  865.     {
  866.         printf("Day: ");
  867.         scanf("%d", &day);
  868.     }
  869.     while(day < 1 || day > maxDays);
  870.     switch(leapOrNotYear)
  871.     {
  872.         case 0:
  873.         {
  874.             switch(month)
  875.             {
  876.                 case 1: yday += day; break;
  877.                 case 2: yday += 31 + day; break;
  878.                 case 3: yday += 59 + day; break;
  879.                 case 4: yday += 90 + day; break;
  880.                 case 5: yday += 120 + day; break;
  881.                 case 6: yday += 151 + day; break;
  882.                 case 7: yday += 181 + day; break;
  883.                 case 8: yday += 212 + day; break;
  884.                 case 9: yday += 243 + day; break;
  885.                 case 10: yday += 273 + day; break;
  886.                 case 11: yday += 304 + day; break;
  887.                 case 12: yday += 334 + day; break;
  888.             }
  889.             break;
  890.         }
  891.         case 1:
  892.         {
  893.             switch(month)
  894.             {
  895.                 case 1: yday += day; break;
  896.                 case 2: yday += 31 + day; break;
  897.                 case 3: yday += 60 + day; break;
  898.                 case 4: yday += 91 + day; break;
  899.                 case 5: yday += 121 + day; break;
  900.                 case 6: yday += 152 + day; break;
  901.                 case 7: yday += 183 + day; break;
  902.                 case 8: yday += 213 + day; break;
  903.                 case 9: yday += 244 + day; break;
  904.                 case 10: yday += 274 + day; break;
  905.                 case 11: yday += 305 + day; break;
  906.                 case 12: yday += 335 + day; break;
  907.             }
  908.             break;
  909.         }
  910.     }
  911.     printf("Day of the year: %d", yday);
  912.     return 0;
  913. }
  914.  
  915. Задача  №26: Въвежда се ден, месец, година. Да се намери предишната и следващата дата.
  916. #include <stdio.h>
  917. #include <stdlib.h>
  918.  
  919. int main()
  920. {
  921.     int day, month, year, maxDays = 0, beforeDay = 0, nextDay = 0,
  922.         beforeYear = 0, nextYear = 0, beforeMonth = 0, nextMonth = 0;
  923.     printf("Year: ");
  924.     scanf("%d", &year);
  925.     do
  926.     {
  927.         printf("Month (1 to 12): ");
  928.         scanf("%d", &month);
  929.     }
  930.     while(month < 1 || month > 12);
  931.     switch(month)
  932.     {
  933.         case 1: case 3: case 5: case 7:
  934.             case 8: case 10: case 12:
  935.                 maxDays += 31; break;
  936.         case 4: case 6: case 9: case 11:
  937.                 maxDays += 30; break;
  938.         case 2:
  939.                 if (year % 4 == 0)
  940.                     {
  941.                         if (year % 100 == 0)
  942.                         {
  943.                             if (year % 400 == 0)
  944.                                maxDays += 29;
  945.                             else
  946.                                 maxDays += 28;
  947.                         }
  948.                         else
  949.                             maxDays += 29;
  950.                     }
  951.                 else
  952.                     maxDays += 28;
  953.                 break;
  954.     }
  955.     do
  956.     {
  957.         printf("Day: ");
  958.         scanf("%d", &day);
  959.     }
  960.     while(day < 1 || day > maxDays);
  961.     if(month == 12 && day == maxDays)
  962.     {
  963.         nextYear += year + 1;
  964.         nextMonth += 1;
  965.         nextDay += 1;
  966.         beforeDay += day - 1;
  967.         printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
  968.                beforeDay, month, year, nextDay, nextMonth, nextYear);
  969.     }
  970.     else if(month == 1 && day == 1)
  971.     {
  972.         beforeYear += year - 1;
  973.         beforeMonth += 12;
  974.         beforeDay += 31;
  975.         nextDay += day + 1;
  976.         printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
  977.                beforeDay, beforeMonth, beforeYear, nextDay, month, year);
  978.     }
  979.     else if(day == maxDays)
  980.     {
  981.         nextMonth += month + 1;
  982.         nextDay += 1;
  983.         beforeDay += day - 1;
  984.         printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
  985.                beforeDay, month, year, nextDay, nextMonth, year);
  986.     }
  987.     else if(day == 1)
  988.     {
  989.         beforeMonth += month - 1;
  990.         switch(beforeMonth)
  991.         {
  992.             case 1: case 3: case 5: case 7:
  993.               case 8: case 10: case 12:
  994.                 beforeDay += 31; break;
  995.             case 4: case 6: case 9: case 11:
  996.                 beforeDay += 30; break;
  997.         case 2:
  998.                 if (year % 4 == 0)
  999.                     {
  1000.                         if (year % 100 == 0)
  1001.                         {
  1002.                             if (year % 400 == 0)
  1003.                                beforeDay += 29;
  1004.                             else
  1005.                                 beforeDay += 28;
  1006.                         }
  1007.                         else
  1008.                             beforeDay += 29;
  1009.                     }
  1010.                 else
  1011.                     beforeDay += 28;
  1012.                 break;
  1013.         }
  1014.         nextDay += day;
  1015.         printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
  1016.                beforeDay, beforeMonth, year, nextDay, month, year);
  1017.     }
  1018.     else
  1019.     {
  1020.         nextDay += day + 1;
  1021.         beforeDay += day - 1;
  1022.         printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
  1023.                beforeDay, month, year, nextDay, month, year);
  1024.     }
  1025.     return 0;
  1026. }
  1027.  
  1028. Задача  №27: Въвежда се ден, месец, година. Да се определи кой ден от седмицата е.
  1029. #include <stdio.h>
  1030. #include <stdlib.h>
  1031.  
  1032. int main()
  1033. {
  1034.     int dd, mm, yy;
  1035.     int maxDays = 0, count, n;
  1036.     int day, month, year;
  1037.     printf("Year: ");
  1038.     scanf("%d", &yy);
  1039.     do
  1040.     {
  1041.         printf("Month (1 to 12): ");
  1042.         scanf("%d", &mm);
  1043.     }
  1044.     while(mm < 1 || mm > 12);
  1045.     switch(mm)
  1046.     {
  1047.         case 1: case 3: case 5: case 7:
  1048.             case 8: case 10: case 12:
  1049.                 maxDays += 31; break;
  1050.         case 4: case 6: case 9: case 11:
  1051.                 maxDays += 30; break;
  1052.         case 2:
  1053.                 if (yy % 4 == 0)
  1054.                     {
  1055.                         if (yy % 100 == 0)
  1056.                         {
  1057.                             if (yy % 400 == 0)
  1058.                                 maxDays += 29;
  1059.                             else
  1060.                                 maxDays += 28;
  1061.                         }
  1062.                         else
  1063.                             maxDays += 29;
  1064.                     }
  1065.                 else
  1066.                     maxDays += 28;
  1067.                 break;
  1068.     }
  1069.     do
  1070.     {
  1071.         printf("Day: ");
  1072.         scanf("%d", &dd);
  1073.     }
  1074.     while(dd < 1 || dd > maxDays);
  1075.     year = yy - 1900;
  1076.     year = year / 4;
  1077.     year = year + yy -1900;
  1078.     switch(mm)
  1079.     {
  1080.             case 1: month = 1;
  1081.                     break;
  1082.             case 2: month = 4;
  1083.                     break;
  1084.             case 3: month = 4;
  1085.                     break;
  1086.             case 4: month = 0;
  1087.                     break;
  1088.             case 5: month = 2;
  1089.                     break;
  1090.             case 6: month = 5;
  1091.                     break;
  1092.             case 7: month = 0;
  1093.                     break;
  1094.             case 8: month = 3;
  1095.                     break;
  1096.             case 9: month = 6;
  1097.                     break;
  1098.             case 10: month = 1;
  1099.                      break;
  1100.             case 11: month = 4;
  1101.                      break;
  1102.             case 12: month = 12;
  1103.                      break;
  1104.       }
  1105.       year += month;
  1106.       year += dd;
  1107.       day = year % 7;
  1108.       switch(day)
  1109.       {
  1110.             case 0: printf("\nDay: Saturday");
  1111.                     break;
  1112.             case 1: printf("\nDay: Sunday");
  1113.                     break;
  1114.             case 2: printf("\nDay: Monday");
  1115.                     break;
  1116.             case 3: printf("\nDay: Tuesday");
  1117.                     break;
  1118.             case 4: printf("\nDay: Wednesday");
  1119.                     break;
  1120.             case 5: printf("\nDay: Thursday");
  1121.                     break;
  1122.             case 6: printf("\nDay: Friday");
  1123.                     break;
  1124.       }
  1125.       return 0;
  1126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement