Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Задача №1: Да се разменят стойностите на две променливи (buffer).
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a,b,c;
- printf("a = ");
- scanf("%d", &a);
- printf("b = ");
- scanf("%d", &b);
- c = a;
- a = b;
- b = c;
- printf("a = %d, b = %d", a, b);
- return 0;
- }
- Задача №2: Да се разменят стойностите на две променливи (без buffer).
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a, b;
- printf("a = ");
- scanf("%d", &a);
- printf("b = ");
- scanf("%d", &b);
- a = a + b;
- b = a - b;
- a = a - b;
- printf("a = %d, b = %d", a,b);
- return 0;
- }
- Задача №3: Да се намери най – голямото от n числа.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int n, a, max;
- do
- {
- printf("numbers (>0)= ");
- scanf("%d", &n);
- }
- while(n<=0);
- printf("a = ");
- scanf("%d", &a);
- max = a;
- int i = 2;
- while(i<=n)
- {
- printf("a = ");
- scanf("%d", &a);
- if(a > max) max = a;
- i++;
- }
- printf("max = %d", max);
- return 0;
- }
- Задача №4: Да се намери сумата на естествените числа от 1 до n.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int n;
- do
- {
- printf("n (>0)= ");
- scanf("%d", &n);
- }
- while(n <= 0);
- int i = 1;
- int sum = 0;
- while(i <= n)
- {
- sum += i;
- i++;
- }
- printf("sum = %d", sum);
- return 0;
- }
- Задача №5: Да се намери сумата на n произволни числа.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int n;
- do
- {
- printf("n (>0)= ");
- scanf("%d", &n);
- }
- while(n<=0);
- int i = 1;
- int sum = 0;
- while(i<=n)
- {
- int a;
- printf("a = ");
- scanf("%d", &a);
- sum += a;
- i++;
- }
- printf("sum = %d", sum);
- return 0;
- }
- Задача №6: Да се намери средният успех на учениците от входното ниво по БЕЛ.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int students, grade;
- do
- {
- printf("Students (>0): ");
- scanf("%d", students);
- }
- while(students < 1);
- int i = 1, sumOfGrades = 0;
- while(i <= students)
- {
- do
- {
- printf("Grade of student %d: ", i);
- scanf("%d", grade);
- }
- while(grade < 2 || grade > 6);
- sumOfGrades += grade;
- i++;
- }
- float average = sumOfGrades / students;
- printf("Average: %f", average);
- return 0;
- }
- Задача №7: Да се определи дали дадено число е просто или не.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int number;
- do
- {
- printf("number (>=2)= ");
- scanf("%d", &number);
- }
- while(number < 2);
- int sumofdividers = 0;
- int divider = 1;
- while(number >= divider)
- {
- if(number % divider == 0)
- sumofdividers++;
- divider++;
- }
- if(sumofdividers == 2)
- printf("%d is simple number", number);
- else
- printf("%d is not simple number", number);
- return 0;
- }
- Задача №8: Да се намери максималното от n числа, но само от тези, които се делят на 3.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int n;
- do
- {
- printf("numbers (>0)= ");
- scanf("%d", &n);
- }
- while(n<=0);
- int a;
- printf("a = ");
- scanf("%d", &a);
- int max = a;
- int i = 2;
- while(i<=n)
- {
- printf("a = ");
- scanf("%d", &a);
- if(a % 3 == 0)
- {
- if(a > max) max = a;
- }
- i++;
- }
- printf("max = %d", max);
- return 0;
- }
- Задача №9: Да се намери броя на цифрите на дадено естествено число.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int num;
- do
- {
- printf("number (>0)= ");
- scanf("%d", &num);
- }
- while(num<=0);
- int count = 0;
- while(num != 0)
- {
- count++;
- num /= 10;
- }
- printf("Total digits: %d", count);
- return 0;
- }
- Задача №10: Да се намери сумата от цифрите на дадено естествено число.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int num;
- do
- {
- printf("number (>0)= ");
- scanf("%d", &num);
- }
- while(num<=0);
- int sum = 0;
- int digit;
- while(num != 0)
- {
- digit = num % 10;
- sum += digit;
- num /= 10;
- }
- printf("Sum of digits: %d", sum);
- return 0;
- }
- Задача №11: Да се получи числото m, записано с цифрите на естественото число n, но в обратен ред.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int num;
- do
- {
- printf("number (>0)= ");
- scanf("%d", &num);
- }
- while(num<=0);
- int reverse = 0;
- while (num != 0)
- {
- reverse *= 10;
- reverse += num%10;
- num /= 10;
- }
- printf("Reversed number is %d", reverse);
- return 0;
- }
- Задача №12: Да се получи числото m, като съдържа четните цифри на n в същия ред.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int num;
- do
- {
- printf("number (>0)= ");
- scanf("%d", &num);
- }
- while(num<=0);
- int m = 0;
- int j = 0;
- int digit;
- while(num != 0)
- {
- digit = num % 10;
- if(digit % 2 == 0)
- {
- m *=10;
- m += digit;
- }
- num /= 10;
- }
- while (m != 0)
- {
- j *= 10;
- j += m%10;
- m /= 10;
- }
- printf("Number with even digits of %d: %d", num, j);
- return 0;
- }
- Задача №13: Да се определи колко пъти дадена цифра се среща в дадено естествено число.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int num;
- do
- {
- printf("number (>0)= ");
- scanf("%d", &num);
- }
- while(num<=0);
- int digit;
- do
- {
- printf("digit (0<=digit<=9)= ");
- scanf("%d", &digit);
- }
- while((digit < 0)||(digit > 9));
- int count = 0;
- int m;
- while(num != 0)
- {
- m = num%10;
- if(m == digit)count++;
- num /= 10;
- }
- printf("The count of %d: %d", digit, count);
- return 0;
- }
- Задача №14: Да се определи дали дадена цифра се среща в даденото число n (Отг. „yes/no”).
- int main()
- {
- int number = 0;
- int number_to_devide = 0;
- int digit = 0;
- int current_digit_to_check = 0;
- do
- {
- printf("Number = ");
- scanf("%d", &number);
- }
- while (number < 0);
- number_to_devide = number;
- do
- {
- printf("Digit = ");
- scanf("%d", &digit);
- }
- while (digit < 0 || digit > 9);
- if (number_to_devide == digit)
- {
- printf("The number %d contains the digit %d!\n", number, digit);
- return 0;
- }
- while (number_to_devide > 0)
- {
- current_digit_to_check = number_to_devide % 10;
- if (current_digit_to_check == digit)
- {
- printf("The number %d contains the digit %d!\n", number, digit);
- return 0;
- }
- number_to_devide /= 10;
- }
- printf("The number %d does not contain the digit %d!\n", number, digit);
- return 0;
- }
- Задача №15: Да се намери an, като a – float и n – int.
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- float base;
- int exp;
- double result = 1;
- printf("Enter a base number: ");
- scanf("%f", &base);
- printf("Enter an exponent: ");
- scanf("%d", &exp);
- if(exp >= 0)
- {
- while (exp > 0)
- {
- result *= base;
- --exp;
- }
- }
- else
- {
- while(exp < 0)
- {
- result /= base;
- exp++;
- }
- }
- printf("Result = %lf", result);
- return 0;
- }
- Задача №16: Да се намери n-то число на Фибоначи.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int n0=1,n1=1,n2,counter,number;
- printf("Enter the Nth of Fibonacci numbers:");
- scanf("%d",&number);
- for(counter=1;counter<number;counter++)
- {
- n2=n0+n1;
- n0=n1;
- n1=n2;
- }
- printf("The Fibonacci number: %d",n2);
- return 0;
- }
- Задача №17: Да се изведат делителите на дадено естествено число и техния брой.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int n;
- do
- {
- printf("n (>0)= ");
- scanf("%d", &n);
- }
- while(n<=0);
- int i = 1;
- int count = 0;
- while(i<=n)
- {
- if(n % i == 0)
- {
- printf("divider = %d\n", i);
- count += 1;
- }
- i++;
- }
- printf("Count: %d", count);
- return 0;
- }
- Задача №18: Да се изведат простите делители на дадено естествено число и техния брой.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int number;
- do
- {
- printf("number (>0)= ");
- scanf("%d", &number);
- }
- while(number < 1);
- int countofsimpledividers = 0;
- int divider = 1;
- while(divider<=number)
- {
- if(number % divider == 0)
- {
- int divider2 = 1;
- int countofdividers = 0;
- while(divider2<=divider)
- {
- if(divider % divider2 == 0)
- countofdividers +=1;
- divider2++;
- }
- if(countofdividers == 2)
- {
- printf("Simple divider = %d\n", divider);
- countofsimpledividers += 1;
- }
- }
- divider++;
- }
- printf("Count of simple dividers is %d", countofsimpledividers);
- return 0;
- }
- Задача №18: Да се определи броя на единиците в двоичното представяне на числото n.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- long long number_decimal, tempDecimal;
- long long binary = 0;
- int theRest, countOfUnit = 0;
- int place = 1;
- do
- {
- printf("Number = ");
- scanf("%lld", &number_decimal);
- }
- while(number_decimal < 0);
- tempDecimal = number_decimal;
- while(tempDecimal > 0)
- {
- theRest = tempDecimal % 2;
- if(theRest == 1)
- {
- countOfUnit++;
- }
- binary += theRest*place;
- tempDecimal /= 2;
- place *= 10;
- }
- printf("Decimal number = %lld\n", number_decimal);
- printf("Binary number = %lld\n", binary);
- printf("Count of Unit: %d", countOfUnit);
- return 0;
- }
- Задача №19: Линейно уравнение
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a, b;
- printf("a = ");
- scanf("%d", &a);
- printf("b = ");
- scanf("%d", &b);
- printf("%dx + %d = 0\n", a, b);
- float x = 0;
- if(a!=0 && b!=0)
- {
- x +=(float)-b/a;
- printf("x = %.2f", x);
- return 0;
- }
- if(a == 0)
- {
- if(b==0)
- {
- printf("Each x is a solution");
- return 0;
- }
- else
- {
- printf("The equation has no solution");
- return 0;
- }
- }
- if(b == 0)
- {
- printf("x = 0");
- }
- return 0;
- }
- Задача №19: Квадратно уравнение
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a, b, c;
- float discriminant = 0, x1 = 0, x2 = 0, valid = 0;
- printf("a = ");
- scanf("%d", &a);
- printf("b = ");
- scanf("%d", &b);
- printf("c = ");
- scanf("%d", &c);
- printf("%dx^2 + %dx + %d = 0\n", a, b, c);
- if(a == 0)
- {
- if(b != 0 && c != 0) //bx+c=0
- {
- x1+=(float) -c/b;
- printf("x = %.2f", x1);
- return 0;
- }
- if(b == 0)
- {
- if(c == 0) //0 = 0
- {
- printf("Each x is a solution");
- return 0;
- }
- else //c = 0
- {
- printf("The equation has no solution");
- return 0;
- }
- }
- if(c == 0) //bx = 0
- {
- printf("x = 0");
- return 0;
- }
- }
- if(b == 0) //ax2 + c = 0
- {
- if(c == 0) //ax2 = 0
- {
- printf("x = 0");
- return 0;
- }
- if(a != 0 && c != 0)
- {
- valid = -c/a;
- if(valid < 0)
- {
- printf("The equation has no solution");
- return 0;
- }
- else
- {
- x1 += (float)sqrt(-c/a);
- x2 += (float)-(sqrt(-c/a));
- printf("x1 = %.2f, x2 = %.2f", x1, x2);
- return 0;
- }
- }
- }
- if(c == 0)
- {
- if(a!=0 && b!=0) //x(ax + b) = 0
- {
- x2 +=(float)-b/a;
- printf("x1 = 0, x2 = %.2f", x2);
- return 0;
- }
- }
- if(a != 0 && b != 0)
- {
- discriminant += b*b - 4*a*c;
- if(discriminant > 0)
- {
- x1 += (float)(-b + sqrt(discriminant))/(2*a);
- x2 += (float)(-b - sqrt(discriminant))/(2*a);
- printf("x1 = %.2f, x2 = %.2f", x1, x2);
- return 0;
- }
- if(discriminant == 0)
- {
- x1 += (float)-b/(2*a);
- printf("x1 = x2 = %.2f", x1);
- return 0;
- }
- if(discriminant < 0)
- {
- printf("The equation has no solution");
- return 0;
- }
- }
- }
- Задача №20: Извеждане на ASCII таблицата.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int c;
- for(c = 0; c <= 255; c++)
- printf("\n%c %d", c, c);
- return 0;
- }
- Задача №21: Програмата да въведе символ, ако този символ е малка буква да изведе съответната голяма и обратното, ако е съвсем друг символ да изведе символа.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- char symbol;
- printf("Symbol = ");
- scanf("%c", &symbol);
- if(symbol >= 'a' && symbol <= 'z')
- {
- symbol -= 32;
- printf("Big Letter: %c", symbol);
- }
- else if(symbol >= 'A' && symbol <= 'Z')
- {
- symbol += 32;
- printf("Small Letter: %c", symbol);
- }
- else
- printf("Symbol: %c", symbol);
- return 0;
- }
- Задача №22: Въвежда се последователност от символи, завършващи с Enter. Да се намери броя на малките букви, големите букви, цифрите и останалите.
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- int main()
- {
- char symbol;
- int small = 0, big = 0, digit = 0, other = 0;
- do
- {
- symbol = getchar();
- if(symbol >= 'a' && symbol <= 'z') small += 1;
- else if(symbol >= 'A' && symbol <= 'Z') big += 1;
- else if(symbol >= '0' && symbol <= '9') digit += 1;
- else if(symbol == 10) break;
- else other += 1;
- }
- while(symbol != 10);
- printf("Small Letters: %d\nBig Letters: %d\nDigits: %d\nOthers: %d",
- small, big, digit, other);
- return 0;
- }
- Задача №23: Калкулатор.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- char op;
- float a, b;
- printf("a = ");
- scanf("%f", &a);
- do
- {
- do
- {
- printf("Enter operation(-,+,*,/0): ");
- op = getche();
- }
- while(op != '+' && op != '-' && op != '*' && op != '/' && op != '=');
- if(op == '=') break;
- printf("\nb = ");
- scanf("%f", &b);
- switch(op)
- {
- case'+': a = a + b; break;
- case'-': a = a - b; break;
- case'*': a = a * b; break;
- case'/': while(b == 0)
- {
- printf("\nb = ");
- scanf("%f", &b);
- }
- a = a / b;
- break;
- }
- }
- while(op != '=');
- printf("\nRezult: %f", a);
- return 0;
- }
- Задача №24: Въвежда се месец и година като цели числа. Да се определи броя на дните в месеца.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int month, year;
- do
- {
- printf("Month (1 to 12): ");
- scanf("%d", &month);
- }
- while(month < 1 || month > 12);
- printf("Year: ");
- scanf("%d", &year);
- switch(month)
- {
- case 1: case 3: case 5: case 7:
- case 8: case 10: case 12:
- printf("Days: 31"); break;
- case 4: case 6: case 9: case 11:
- printf("Days: 30"); break;
- case 2:
- if (year % 4 == 0)
- {
- if (year % 100 == 0)
- {
- if (year % 400 == 0)
- printf("Days: 29");
- else
- printf("Days: 28");
- }
- else
- printf("Days: 29");
- }
- else
- printf("Days: 28");
- break;
- }
- return 0;
- }
- Задача №25: Въвежда се ден, месец, година. Да се определи кой пореден ден от годината е.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int day, month, year, maxDays = 0, yday = 0, leapOrNotYear = 0;
- printf("Year: ");
- scanf("%d", &year);
- if (year % 4 == 0)
- {
- if (year % 100 == 0)
- {
- if (year % 400 == 0)
- leapOrNotYear += 1;
- else
- leapOrNotYear += 0;
- }
- else
- leapOrNotYear += 1;
- }
- else
- leapOrNotYear += 0;
- do
- {
- printf("Month (1 to 12): ");
- scanf("%d", &month);
- }
- while(month < 1 || month > 12);
- switch(month)
- {
- case 1: case 3: case 5: case 7:
- case 8: case 10: case 12:
- maxDays += 31; break;
- case 4: case 6: case 9: case 11:
- maxDays += 30; break;
- case 2:
- if (leapOrNotYear == 0) maxDays += 28;
- else if(leapOrNotYear == 1) maxDays += 29;
- break;
- }
- do
- {
- printf("Day: ");
- scanf("%d", &day);
- }
- while(day < 1 || day > maxDays);
- switch(leapOrNotYear)
- {
- case 0:
- {
- switch(month)
- {
- case 1: yday += day; break;
- case 2: yday += 31 + day; break;
- case 3: yday += 59 + day; break;
- case 4: yday += 90 + day; break;
- case 5: yday += 120 + day; break;
- case 6: yday += 151 + day; break;
- case 7: yday += 181 + day; break;
- case 8: yday += 212 + day; break;
- case 9: yday += 243 + day; break;
- case 10: yday += 273 + day; break;
- case 11: yday += 304 + day; break;
- case 12: yday += 334 + day; break;
- }
- break;
- }
- case 1:
- {
- switch(month)
- {
- case 1: yday += day; break;
- case 2: yday += 31 + day; break;
- case 3: yday += 60 + day; break;
- case 4: yday += 91 + day; break;
- case 5: yday += 121 + day; break;
- case 6: yday += 152 + day; break;
- case 7: yday += 183 + day; break;
- case 8: yday += 213 + day; break;
- case 9: yday += 244 + day; break;
- case 10: yday += 274 + day; break;
- case 11: yday += 305 + day; break;
- case 12: yday += 335 + day; break;
- }
- break;
- }
- }
- printf("Day of the year: %d", yday);
- return 0;
- }
- Задача №26: Въвежда се ден, месец, година. Да се намери предишната и следващата дата.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int day, month, year, maxDays = 0, beforeDay = 0, nextDay = 0,
- beforeYear = 0, nextYear = 0, beforeMonth = 0, nextMonth = 0;
- printf("Year: ");
- scanf("%d", &year);
- do
- {
- printf("Month (1 to 12): ");
- scanf("%d", &month);
- }
- while(month < 1 || month > 12);
- switch(month)
- {
- case 1: case 3: case 5: case 7:
- case 8: case 10: case 12:
- maxDays += 31; break;
- case 4: case 6: case 9: case 11:
- maxDays += 30; break;
- case 2:
- if (year % 4 == 0)
- {
- if (year % 100 == 0)
- {
- if (year % 400 == 0)
- maxDays += 29;
- else
- maxDays += 28;
- }
- else
- maxDays += 29;
- }
- else
- maxDays += 28;
- break;
- }
- do
- {
- printf("Day: ");
- scanf("%d", &day);
- }
- while(day < 1 || day > maxDays);
- if(month == 12 && day == maxDays)
- {
- nextYear += year + 1;
- nextMonth += 1;
- nextDay += 1;
- beforeDay += day - 1;
- printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
- beforeDay, month, year, nextDay, nextMonth, nextYear);
- }
- else if(month == 1 && day == 1)
- {
- beforeYear += year - 1;
- beforeMonth += 12;
- beforeDay += 31;
- nextDay += day + 1;
- printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
- beforeDay, beforeMonth, beforeYear, nextDay, month, year);
- }
- else if(day == maxDays)
- {
- nextMonth += month + 1;
- nextDay += 1;
- beforeDay += day - 1;
- printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
- beforeDay, month, year, nextDay, nextMonth, year);
- }
- else if(day == 1)
- {
- beforeMonth += month - 1;
- switch(beforeMonth)
- {
- case 1: case 3: case 5: case 7:
- case 8: case 10: case 12:
- beforeDay += 31; break;
- case 4: case 6: case 9: case 11:
- beforeDay += 30; break;
- case 2:
- if (year % 4 == 0)
- {
- if (year % 100 == 0)
- {
- if (year % 400 == 0)
- beforeDay += 29;
- else
- beforeDay += 28;
- }
- else
- beforeDay += 29;
- }
- else
- beforeDay += 28;
- break;
- }
- nextDay += day;
- printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
- beforeDay, beforeMonth, year, nextDay, month, year);
- }
- else
- {
- nextDay += day + 1;
- beforeDay += day - 1;
- printf("Previous date: %d/%d/%d\nNext date: %d/%d/%d",
- beforeDay, month, year, nextDay, month, year);
- }
- return 0;
- }
- Задача №27: Въвежда се ден, месец, година. Да се определи кой ден от седмицата е.
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int dd, mm, yy;
- int maxDays = 0, count, n;
- int day, month, year;
- printf("Year: ");
- scanf("%d", &yy);
- do
- {
- printf("Month (1 to 12): ");
- scanf("%d", &mm);
- }
- while(mm < 1 || mm > 12);
- switch(mm)
- {
- case 1: case 3: case 5: case 7:
- case 8: case 10: case 12:
- maxDays += 31; break;
- case 4: case 6: case 9: case 11:
- maxDays += 30; break;
- case 2:
- if (yy % 4 == 0)
- {
- if (yy % 100 == 0)
- {
- if (yy % 400 == 0)
- maxDays += 29;
- else
- maxDays += 28;
- }
- else
- maxDays += 29;
- }
- else
- maxDays += 28;
- break;
- }
- do
- {
- printf("Day: ");
- scanf("%d", &dd);
- }
- while(dd < 1 || dd > maxDays);
- year = yy - 1900;
- year = year / 4;
- year = year + yy -1900;
- switch(mm)
- {
- case 1: month = 1;
- break;
- case 2: month = 4;
- break;
- case 3: month = 4;
- break;
- case 4: month = 0;
- break;
- case 5: month = 2;
- break;
- case 6: month = 5;
- break;
- case 7: month = 0;
- break;
- case 8: month = 3;
- break;
- case 9: month = 6;
- break;
- case 10: month = 1;
- break;
- case 11: month = 4;
- break;
- case 12: month = 12;
- break;
- }
- year += month;
- year += dd;
- day = year % 7;
- switch(day)
- {
- case 0: printf("\nDay: Saturday");
- break;
- case 1: printf("\nDay: Sunday");
- break;
- case 2: printf("\nDay: Monday");
- break;
- case 3: printf("\nDay: Tuesday");
- break;
- case 4: printf("\nDay: Wednesday");
- break;
- case 5: printf("\nDay: Thursday");
- break;
- case 6: printf("\nDay: Friday");
- break;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement