using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication26
{
class Program
{
static Random random = new Random();
static void Main(string[] args)
{
Console.Write("Náhodná čísla jsou ");
int n = 20;
int[] a = new int[n];
for (int i = 0; i < n; i++)
a[i] = random.Next(9);
for (int i = 0; i < n; i++)
Console.Write(a[i] + (i < n - 1 ? ", " : ""));
Console.WriteLine();
for (int i = n; i > 0 ; i--)
Console.Write(a[i] + (i < n - 1 ? ", " : ""));
Console.WriteLine();
{
}
}
}
}
Můžu se zeptat ještě na jiný příklad?
Tohle nevím z které strany pojmout: . Sestavte program, který provede cyklický posun členů posloupnosti o k míst doleva a takto upravenou posloupnost vypíše.
Jako výchozí vstupní hodnoty posloupnosti použijte indexy těchto členů zvýšené o +1, n = 20.
Ten posun posloupnosti by mělo být něco takového: 1,2,3,4,5
posun=1 2,3,4,5,1
Takže by stačilo první buňku odložit do nějaké dočasné proměnné, celé pole cyklem posunout (bacha na poslední buňku, do té už se nic neposouvá!), a pak do poslední buňky vložit obsah té dočasné proměnné.
To by posunulo o jeden, ale já se musím nejdřív zeptat jaké je k, které je vždy jiné. Něco podobného už jsem měla v tomto příkladu:
Sestavte program, který do posloupnosti přidá na prvních k pozic, čísla od k-1 do 0 (tj. sestupně) a ostatní členy posune dozadu. Hodnotu k zadá uživatel, před jejím požitím ověřte že 1 <= k <= n, jinak nechť je vypsána chyba. Nově vzniklou posloupnost ať program vypíše.
Jako výchozí vstupní hodnoty posloupnosti použijte náhodná čísla od 0 do 9, n = 10.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication24
{
class Program
{
static Random random = new Random();
static void Main(string[] args)
{
Console.Write("Náhodná čísla jsou ");
int n = 10;
int[] a = new int[n];
for (int i = 0; i < n; i++)
a = random.Next(9);
for (int i = 0; i < n; i++)
Console.Write(a + (i < n - 1 ? ", " : ""));
Console.WriteLine();
Console.WriteLine("Zadej číslo: ");
int k = Convert.ToInt32(Console.ReadLine());
Array.Resize(ref a, a.Length + k);
for (int i = a.Length - 1; i >= k;i-- )
{
a = a;
}
for (int i = 0; i < k;i++ )
{
a = k - i - 1;
}
Console.WriteLine();
for (int i = 0; i < n; i++)
{
Console.Write((i) + " " + a);
Console.WriteLine();
}
Console.ReadLine();
}
}
}
Ale i tady to asi nemám dobře.
No a když k=5, je problém to pole posunout pětkrát o 1?
Jo, je to prasárna, a určitě to není nejrychlejší. Takže místo dočasné proměnné bych použil dočasné pole, tak velké o kolik má být posun, do něj zkopíroval začátek té posloupnosti, potom jí posunul a dočasné pole zkopíroval zase na konec.
Ten kód dávej do tagu Code tak jako v prvním příspěvku, zachová se ti odsazování a mnohem lépe se to čte.