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. Компиляция, отладка, тестирование и получение результата:

 

Задания на лабораторную работу №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

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

Defg

Вариант 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

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

 

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

Abcde fghik abcde lmnop fghi

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

Abcde fghik lmnop fghi

Вариант 8

Задание 1

В заданной строке заменить все последовательности одинаковых символов длиной более двух на конструкцию (k)a, где k - количество повторений символа a.

 

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

Abbcdddeeffffghh

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

Abbc(3)dee(4)fghh

Задание 2

В заданной строке найти первую и последнюю цифры. Отсортировать символы, стоящие между ними, по возрастанию. Рабочие строки не использовать.

 

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

a*bc&9lsb345z%x

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

a*bc&9l34bs5z%x

Вариант 9

Задание 1

В заданной строке найти минимальное и максимальное целое число (числа могут быть отрицательными, в этом случае знак “минус” перед ними ставится без пробела). Предусмотреть случай, когда в строке чисел нет.

 

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

a*bc&19-l sb3>4-5z%x

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

max=19

min=-5

Задание 2

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

 

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

a*bc -&19 -l sb3> 4-5 z%x



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: