سوال: برنامهای بنویسید که ابتدا تعداد عناصر یک آرایه را از ورودی دریافت کرده سپس اعداد آرایه را از ورودی بگیرد. اگر عدد تکراری وارد شد پیغام تکراری بودن دهد.
برای نوشتن این برنامه، یک متد به نام isTekrari ساختهایم. کار این متد جستجو در آرایه و پیدا کردن یک عدد خاص است. اگر این عدد در آرایه پیدا شود، متد مقدار true برمیگرداند و در غیر اینصورت false. این متد، یک آرایه و یک عدد را به عنوان آرگومان های ورودی خود، دریافت میکند.
در برنامه اصلی، بعد از دریافت هر عدد از ورودی، با استفاده از متد isTekrari ، بررسی میکنیم که آیا عدد ورودی در آرایه موجود است یا نه. اگر موجود بود، با استفاده از دستور continue به دور بعدی حلقه می رویم. دقت کنید که در این صورت مقدار شمارنده حلقه هیچ تغییری نمیکند؛ بنابراین تا زمانیکه عدد وارد شده تکراری باشد، حلقه تکرار میشود. اما اگر عدد وارد شده تکراری نبود، آن عدد در آرایه ذخیره شده و مقدار شمارنده حلقه افزایش پیدا میکند.
به لیست برنامه دقت کنید:
using System; namespace qa01 { class Program { static bool isTekrari(int[] a, int b) { for (int i = 0; i < a.Length; i++) { if (a[i]==b) { return true; } } return false; } static void Main(string[] args) { int n=0, inp=0; int.TryParse(Console.ReadLine(), out n); int[] ar=new int[n]; for(int i=0;i<n;) { int.TryParse(Console.ReadLine(), out inp); if (!isTekrari(ar, inp)) { ar[i] = inp; i++; } else { Console.WriteLine("Tekrari"); continue; } } Console.Clear(); for (int i = 0; i < ar.Length; i++) { Console.Write("{0} ", ar[i]); } Console.ReadKey(); } } }