Unsigned int i, n, summa, count; //описание переменных

char str[50], s;

printf("\nЛабораторная работа №5_1");

printf("\nВариант №0");

printf("\nПО-11-1");

printf("\nПупкин Василий\n");

printf("\nВведите строку символов:\n"); //ввод исходных данных

printf("\n str=");

scanf("%s", str);

n = strlen(str); //длина строки

summa = 0; //начальное значение суммы

count = 0; //начальное количество цифр в строке

printf("\nНайденные цифры:\n");

for (i=0; i<n; i++)

{

s = str[i]; //очередной символ исходной строки

if (s == '0')

{

count++;

printf("%3c", s);

}

if (s == '1')

{

count++;

summa++;

printf("%3c", s);

}

if (s == '2')

{

count++;

summa += 2;

printf("%3c", s);

}

if (s == '3')

{

count++;

summa += 3;

printf("%3c", s);

}

if (s == '4')

{

count++;

summa += 4;

printf("%3c", s);

}

if (s == '5')

{

count++;

summa += 5;

printf("%3c", s);

}

if (s == '6')

{

count++;

summa += 6;

printf("%3c", s);

}

if (s == '7')

{

count++;

summa += 7;

printf("%3c", s);

}

if (s == '8')

{

count++;

summa += 8;

printf("%3c", s);

}

if (s == '9')

{

count++;

summa += 9;

printf("%3c", s);

}

}

printf("\nsumma=%d", summa);

printf("\ncount=%d", count);

return 0;

}

  1. Компиляция, отладка, тестирование и получение результата:

Unsigned int i, n, summa, count; //описание переменных - student2.ru

Задания на лабораторную работу №5

Исходные строки вводить с консоли. В строках можно использовать любые символы, находящиеся на клавиатуре.

Вариант 1

Задание 1

Найти в строке все сдвоенные символы. Вывести их на экран и подсчитать их количество.

Входные данные:

hb55’#dd&&87

Выходные данные:

dd

&&

count=3

Задание 2

Из заданной строки удалить все последовательности символов, находящиеся между корректно записанными круглыми скобками (скобки удалить тоже). Скобки могут быть вложенными.

Входные данные:

ab(h[b55](0123)jw((’)f)#dd&&87

Выходные данные:

ab(h[b55]jw#dd&&87

Вариант 2

Задание 1

Определить, корректно ли расставлены в строке круглые и квадратные скобки. Скобки могут быть вложенными.

Входные данные:

ab(h[b55](0123)jw((’)f)#dd&&87

Выходные данные:

Некорректно

Задание 2

Переставить в начало строки все буквы в порядке их следования, затем цифры, и в конце – остальные символы. Рабочие строки не использовать.

Входные данные:

abh[b55](0123)jw((’)f)#dd&&87

Выходные данные:

abhbjwfdd55012387([]((’))#&&

Вариант 3

Задание 1

Строка – это правильное арифметическое выражение, содержащее только натуральные числа и знаки арифметических операций между ними (+, -, *, /). Подсчитать результат, выполняя арифметические операции в порядке их следования.

Входные данные:

5*3-9/3

Выходные данные:

Задание 2

В строке, содержащей не менее двух слов, разделенных пробелом, поменять местами первое и последнее слова.

Входные данные:

Abcde fghik lmnop qrst uxyz

Выходные данные:

Uxyz fghik lmnop qrst abcde

Вариант 4

Задание 1

Строка – это правильное арифметическое выражение, содержащее только натуральные числа и знаки арифметических операций между ними (+, -, *, /). Подсчитать результат, выполняя арифметические операции в порядке их приоритета.

Входные данные:

5*3-9/3

Выходные данные:

Задание 2

В строке, содержащей не менее трех слов, разделенных пробелом, поменять местами второе и предпоследнее слова.

Входные данные:

Abcde fghik lmnop qrst uxyz

Выходные данные:

Abcde qrst lmnop fghik uxyz

Вариант 5

Задание 1

В строке, содержащей несколько слов, разделенных пробелом, переставить слова в обратной последовательности.

Входные данные:

Abcde fghik lmnop qrst uxyz

Выходные данные:

Uxyz qrst lmnop fghik abcde

Задание 2

В строке определить самую длинную последовательность символов, стоящих по возрастанию.

Входные данные:

abc012#*&defg346dezxc

Выходные данные:

Dez

Вариант 6

Задание 1

В строке, содержащей несколько слов, разделенных пробелом, перевернуть каждое слово.

Входные данные:

Abcde fghik lmnop

Выходные данные:

Edcba kihgf ponml

Задание 2

Строка представляет собой последовательность натуральных чисел, разделенных пробелом. Найти в ней все последовательности (не менее трех чисел), являющиеся арифметическими прогрессиями.

Входные данные:

1 3 4 6 2 4 6 8 1 3 5

Выходные данные:

2 4 6 8

1 3 5

Вариант 7

Задание 1

Ввести две строки, состоящие только из нулей и единиц. Считая их изображениями двоичных чисел, сложить их и вывести сумму на экран в двоичной и десятичной системах счисления. Исходные слагаемые в десятичную систему счисления не преобразовывать.

Входные данные:

Выходные данные:

Задание 2

Строка представляет собой последовательность слов, разделенных пробелом. Удалить из нее все повторения слов. Рабочие строки не использовать.

Входные данные:

Наши рекомендации