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;
}
- Компиляция, отладка, тестирование и получение результата:
Задания на лабораторную работу №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
Строка представляет собой последовательность слов, разделенных пробелом. Удалить из нее все повторения слов. Рабочие строки не использовать.
Входные данные: