- •2.3. Задача № 3. 44
- •2.3.2. Код программы 46
- •Int _tmain() 46
- •Int _tmain()
- •Int _tmain()
- •1.2.3. Пример работы программы:
- •1.3. Задача № 3.
- •1.3.1. Блок-схема:
- •1.3.2. Код программы:
- •Int _tmain()
- •Int _tmain()
- •Int _tmain()
- •1.5.3. Пример работы программы:
- •2.1. Задача № 1.
- •Int _tmain()
- •3.1.3. Пример работы программы:
- •3.2. Задача № 2.
- •3.2.1. Блок-схема
- •3.2.2. Код программы
- •Int _tmain()
- •3.2.3. Пример работы программы:
- •3.3. Задача 3.
- •3.3.1. Блок схема
- •3.3.2. Код программы
- •Int _tmain()
- •3.3.3. Пример работы программы:
3.2.3. Пример работы программы:
Пример работы представлен на рисунке 14,15,16,17.
Рисунок 7. «Результат при равных первой и второй строках».
Рисунок 8. «Результат в котором первая строка больше второй»
Рисунок 9. «Результат в котором вторая строка меньше первой».
Рисунок 10. «Результат в котором точек меньше одной».
3.3. Задача 3.
Написать программу, которая запрашивает ввод исходной строки. На выходе должно получиться две итоговые строки. В первой строке необходимо поменять местами максимальный и минимальный цифровые символы, а во второй поменять местами максимальный и минимальный буквенные символы (на латинице – минимальный элемент - ‘a’ – код 97, максимальный элемент – ‘z’ – код 122). В случае, если введены только цифры или только буквы, программа должна выдавать соответствующее сообщение.
Решение:
3.3.1. Блок схема
3.3.2. Код программы
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <string.h>
Int _tmain()
{
const char* locale = setlocale(LC_ALL,"");
char c[80],sim1,sim2,max,min;
int k2=0,k1=0,i=0,el1=0,el2=0;
printf("ВВедите первую строку\n");
gets(c);
while (c[i]!='\0')
{
if ((c[i]>='0' && c[i]<='9')&& (el1==0))\\условие которое проверяет есть ли в строке цифровые значения и даёт им начальное максимальное и минимальное значение(el1 – позволяет нам подсчитать что до этого цифровой элемент не встречался)
{
min=c[i];\\ минимальное цифровое значение
max=c[i];\\ максимальное цифровое значение
el1++;
}
if ((c[i]>='a' && c[i]<='z')&& (el2==0))\\аналогично верхниму условию но проверяет наличие в строке буквенных значений,присваивает максимальному и минимальному значению начальное значение.
{
sim1=c[i];\\ миниимальное буквенное значение
sim2=c[i];\\максимальное буквенное значение
el2++;
}
if (c[i]>='0' && c[i]<='9')\\в цикле вычисляются максимальное и минимальное цифровые значения.
{
if (max<c[i])
max=c[i];
if (min>c[i])
min=c[i];
k1++;\\ данная переменная подсчитывает количество цифровых значений
}else if (c[i]>='a' && c[i]<='z')
{
if (sim1<c[i])
sim1=c[i];
if (sim2>c[i])
sim2=c[i];
k2++;\\ переменная подсчитывает количество строковых значений
}
i++;
}
i=0;
if (k1>=2)\\проверка того чтобы количество цифровых символов было как минимум 2.
{
printf("итоговая строка 1: ");
while (c[i]!='\0')\\ цикл предназначен для вывода строки в которой меняются местами максимальное и минимальное цифровые значения.
{
if (c[i]==max)\\ если символ i в строке с совпадает с символом сохранённым в переменной мax, то выводим символ сохранённый в пременной min.
printf("%c",min);
else if (c[i]==min) )\\ если символ i в строке с совпадает с символом сохранённым в переменной мin, то выводим символ сохранённый в пременной max.
printf("%c",max);
else
printf("%c",c[i]);\\ если оба условия не выполняются выводим символ i в строке c
i++;
}
}else\\ если цифровых значений меньше двух то выводится ошибка.
printf("\n введена только 1 цифра либо их нет ! ");
i=0;
if (k2>=2) \\проверка того чтобы количество буквенных символов было как минимум 2.
{
printf("\nитоговая строка 2: ");
while (c[i]!='\0') )\\ цикл предназначен для вывода строки в которой меняются местами максимальное и минимальное буквенные значения.
{
if (c[i]==sim1)\\ если символ i в строке с совпадает с символом сохранённым в переменной sim1, то выводим символ сохранённый в пременной sim2.
printf("%c",sim2);
else if (c[i]==sim2)\\ если символ i в строке с совпадает с символом сохранённым в переменной sim2, то выводим символ сохранённый в пременной sim1.
printf("%c",sim1);
else
printf("%c",c[i]);\\ если оба условия не выполняются выводим символ i в строке c
i++;
}
}else
printf("\n введена только 1 буква либо их нет! ");\\выводит ошибку если количество буквенных значений меньше 2
_getch();
}
