C#
string a;
ConsoleKeyInfo keyInfo;
do
{
Console.WriteLine("Введите одну из перечисленных стран:\n*Венгрия\n*Италия\n*Греция\n*Турция\n*Египет\n*Непал\n*Бельгия\n");
a = Convert.ToString(Console.ReadLine());
switch (a)
{
case ("Венгрия"):
Console.WriteLine("Столица: Будапешт\nНаселение: 9,7 млн чел.\n");
break;
case ("Италия"):
Console.WriteLine("Столица: Рим\nНаселение: 60 млн чел.\n");
break;
case ("Греция"):
Console.WriteLine("Столица: Афины\nНаселение: 10 млн чел.\n");
break;
case ("Турция"):
Console.WriteLine("Столица: Анкара\nНаселение: 55 млн чел.\n");
break;
case ("Египет"):
Console.WriteLine("Столица: Каир\nНаселение: 53 млн чел.\n");
break;
case ("Непал"):
Console.WriteLine("Столица: Катманду\nНаселение: 29 млн чел.\n");
break;
case ("Бельгия"):
Console.WriteLine("Столица: Брюссель\nНаселение: 11 млн чел.\n");
break;
default:
Console.WriteLine("Неверно введены данные\n");
break;
}
Console.WriteLine("Если хотите повторить программу нажмите F");
Console.WriteLine("Если хотите завершить программу нажмите любую другую кнопку\n");
keyInfo = Console.ReadKey(true);
}
while (keyInfo.Key == ConsoleKey.F);
Поделитесь своими знаниями, ответьте на вопрос:
Const
N = 100;//кол-во возможных элементов массива А и Z
M = 0;//при введении этого числа заканчивается заполнение ммасива А
Var
a,b,v,g,ak,bk,vk,gk,jjj,nn: integer;
masA,masZ: array[1..n] Of integer;
Begin
write('при введении числа ',M,
' заполнение массива прекращается');
writeln;
For jjj:=1 To N Do
Begin
read (masA[jjj]);
If masA[jjj]=M Then
Begin
nn := jjj-1;
break;
End;
End;
writeln('исходный массив А :');
For jjj:=1 To nn Do
write(masA[jjj],' ');
writeln;
For jjj:=1 To nn Do
If masA[jjj]<0 Then
Begin
If jjj Mod 2=0 Then a := a+1
Else g := g+1;
End
Else
Begin
If jjj Mod 2=0 Then v := v+1
Else b := b+1;
End;
writeln(a,' ',b,' ',v,' ',g);
ak := a;
bk := b;
vk := v;
gk := g;
For jjj:=1 To nn Do
If masA[jjj]>=0 Then
Begin
If jjj mod 2=0 Then
Begin
masZ[ak+bk+v] := masA[jjj];
v := v-1;
End
Else
Begin
masZ[ak+b] := masA[jjj];
b := b-1;
End
End
Else
Begin
If jjj mod 2=0 Then
Begin
masZ[a] := masA[jjj];
a := a-1;
End
Else
Begin
masZ[ak+bk+vk+g] := masA[jjj];
g := g-1;
End
End;
writeln ('полученный массив Z :');
For jjj:=1 To nn Do
write(masZ[jjj],' ');
End.
объяснить будет сложно , но я попробую . Крч, первый раз перебирая массив , программа считывает кол-во жлементов для каждой из групп (отрицательные с четным индексом-а, отрицательные с нечетным -g,положительные с четным-v,положительные с нечетным-b).
Перебирая массив второй раз , программа берет последовательно числа из масства А , определяет к какой группе они относятся , и дальше кидает в конец нужной часть массива (кол-во всех элемкнтов массива =a+b+v+g, чтобы кинуть числа -2 и -5 (стоящие на нечетных местах ) в нужную часть массива , мы должны кинуть число -2 в ячейку [а+b+v+g] , а число -5 в ячейку [а+b+v+(g-1)] )