Добрый ночи всем! а кому-то утра)
Ситуация следующая: есть задачи, которые необходимо решить, но ОНИ УЖЕ РЕШЕНЫ и есть код (например от похожих задач), можете ,пожалуйста, его отредактировать под Windows Forsm т.к у самого, если честно: ни черта не получается(
ЗАДАЧА 1: Для N<=100.
Дан массив натуральных чисел А(N), значения элементов которого
лежат в диапазоне [1, 200].
**Найти количество тех элементов массива, которые являются палиндромами (т.е. читаются одинаково слева направо и справа налево), а также
найти минимальный элемент среди тех, цифровая запись которых содержит цифру 0 и не содержит цифру 8. **
Код от похожей задачи : ( Найти количество тех элементов массива, которые являются палиндромами (т.е.
читаются одинаково слева направо и справа налево), а также найти минимальный элемент среди тех, цифровая запись которых
дает сумму, кратную трем)
bool thisIsPalindrome(int n);
int _tmain(int argc, _TCHAR* argv[])
{
srand((int)time(NULL));
int const n = 100;
int arr [n], i,counter = 0, min = 150 ;
//заполнение массива
for (i = 0; i<n; i++)
{
arr [i] = rand() % 101;
int b = arr [i];
if (thisIsPalindrome(b))
{
counter++;
}
if (arr [i]/3*3 == arr[i] && min > arr [i] && arr [i]!=0)
min = arr [i];
}
cout<<"counter Palindrome = "<<counter<< endl;
if (min == 150)
cout<<"min not found "<< endl;
else
cout<<"min = "<<min<< endl;
_getch();
return 0;
}
bool thisIsPalindrome(int n)
{ char buffer[100] ;
_itoa_s (n,buffer,10);
string wordString = "";
wordString = (string)buffer;
for (size_t i = 0; i < wordString.length()/2; ++i)
{
if (tolower((wordString[i])) != tolower(wordString[wordString.length() - i - 1]))
return false;
}
return true;
}
ЗАДАЧА 2: Указания к решению: Ввод элементов массива выполнить с помощью датчика случайных чисел. Для всех вариантов N<=100.
Дан массив действительных чисел А(N), значения элементов которого лежат в диапазоне [a,b].
Отсортировать по неубыванию абсолютных величин элементы массива,
находящиеся между последним, дробная часть которого больше 0.5 и
первым, абсолютное значение которого больше 100. Использовать алгоритм сортировки вставкой.
Код для этой же задачи с таким же условием :
Procedure Rikiuoti(var B:TMas;m:integer);
var i,j,c:integer;
str:string;
Begin
For i:=1 to m do
For j:=1 to m-1 do
if B[j].Sk>B[j+1].Sk then
Begin
c:=B[j].Sk;B[j].Sk:=B[j+1].Sk;B[j+1].Sk:=c;
str:=B[j].Name;B[j].Name:=B[j+1].Name;B[j+1].Name:=str;
End;
ЗАДАЧА 3 : Ну и если у вас будут как-то идеи, мнения по поводу решения, то тоже буду благодарен.
Указания к решению. Для ввода чисел использовать генератор случайных чисел. Для всех вариантов N<=100. Дан массив целых чисел А(N).
Отсортировать элементы массива в порядке убывания суммы цифр в
записи числа, а затем из каждой группы повторяющихся элементов оставить по одному. Использовать алгоритм сортировки выбором.
Буду очень благодарен за ваше мнение, варианты и помощь!