BloodMoonYTC

olimpia

Nov 5th, 2021
847
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.98 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace feladat
  8. {
  9.     class Program
  10.     {
  11.         static void Beolvasás(out int N, out float Szint, float[] Id)
  12.         {
  13.             //Elemszám beolvasása
  14.             //A felhasználónak szánt tájékoztató üzenetek az Error csatotnára írandók! A standard output így nézne ki: Console.WriteLine("Hány eleme van a tömbnek?");
  15.             //Például a kérdések:
  16.             Console.Error.WriteLine("Hányan indultak? Mekkora a szintidő másodpercben?");
  17.             string input = Console.ReadLine();//A be.txt-ben egy sorban két elem van
  18.             string[] adatok = input.Split(' ');//A szóköz mentén kettévágjuk
  19.             //A bemenetet nem ellenőrizzük sem szintaktikai, sem szemantikai szempontból. (1<=n<=MaxN)
  20.             N = Convert.ToInt32(adatok[0]);//adatok[0] szöveg típusú értékkel tér vissza, ezért kell számmá konvertálni
  21.             Szint = Convert.ToSingle(adatok[1]);//adatok[1] szöveg típusú értékkel tér vissza, ezért kell valós számmá konvertálni Convert.ToSingle --> float
  22.             //Tömb beolvasása
  23.             for (int i = 0; i < N; i++)//Egy számlálós ciklussal végig megyünk a tömb elemein
  24.             {
  25.                 Console.Error.WriteLine("Írd be a(z) " + (i + 1) + ". induló idejét másodpercben: ("+0+".."+Int32.MaxValue+")");
  26.                 Id[i] = Convert.ToSingle(Console.ReadLine());//0<=x[i]<=Int32.MaxValue, egész szám
  27.             }
  28.         }
  29.        
  30.         static double Megszámolás(int N, float[] Id, float Szint)
  31.         {
  32.             int db = 0;
  33.             for (int i = 0; i < N; i++)
  34.             {
  35.                 if (Id[i] <= Szint)
  36.                 {
  37.                     db++;
  38.                 }
  39.             }
  40.             double Száz = Math.Round(100*(float)db/N); //Kerekítés
  41.             return Száz;
  42.         }
  43.  
  44.         static void Kiírás(double Száz)
  45.         {
  46.             //A kimenetet kísérő szövegek is az Error csatornára irandók!
  47.             Console.Error.Write("Az indulási szintet ennyi százaléka az indulóknak teljesítette: ");
  48.             Console.WriteLine(Száz);//lényeg: kimenet, csak ezt írjuk ki Console.WriteLine()-nal
  49.         }
  50.  
  51.         static void Main(string[] args)
  52.         {
  53.             //F6. Olimpiai indulási szintet hány százalék teljesítette?
  54.             //Maximális elemszám
  55.             const int MaxN = 100;
  56.             //A tömb elemszámának deklarálása
  57.             int N;
  58.             float Szint;
  59.             //MaxN elemszámú tömb deklarálása
  60.             float[] Id = new float[MaxN];
  61.             //Beolvasás
  62.             Beolvasás(out N, out Szint, Id);//out n: n kimeneti paraméter, tömbnél nincs külön jelölése
  63.             //Lényegi megoldás
  64.             double Száz = Megszámolás(N, Id, Szint);
  65.             //Kiírás
  66.             Kiírás(Száz);
  67.         }
  68.     }
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment