نمایش نتایج 1 تا 9 از 9

نام تاپیک: اعداد تام

  1. #1

    اعداد تام

    سلام به همه دوستان برنامه نویس
    من یه برنامه تو کنسول برای به دست آوردن اعداد تام بین دو عدد دلخواه نوشتم ولی موقع اجرا ارور میده
    نمیدونم مشکلش چیه!!
    کسی میتونه کمکم کنه؟
    این هم کدی که نوشتم


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication19
    {
    class Program
    {
    static void Main(string[] args)
    {
    int x = Int32.Parse(Console.ReadLine());
    int y = Int32.Parse(Console.ReadLine());
    int[] a = new int[y];
    int sum = 0, i, j;
    for (i =1; i < y; i++)
    {
    a[i] = i;
    }
    for (i = x; i <= y; i++)
    {
    for (j = 1; j <=a[i]; j++)
    {
    if (a[i]% j == 0)
    {
    sum = sum + j;
    }

    }
    if (sum == a[i])
    {
    Console.WriteLine(a[i]);
    sum = 0;
    }
    }
    Console.ReadKey();
    }
    }
    }

    ممنون میشم اگه کمکم کنین

  2. #2
    کاربر دائمی آواتار mehdy.programmer
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    from Sanandaj lives in Tehran
    سن
    28
    پست
    254

    نقل قول: اعداد تام

    دوست عزیز اگه میشه یکم راجع به الگوریتمت و اینکه می خوای چیکار کنی توضیح بده! اگه میشه راجع به ارروری هم که میده یه توضیحی بده!

  3. #3

    نقل قول: اعداد تام

    نقل قول نوشته شده توسط mehdy.programmer مشاهده تاپیک
    دوست عزیز اگه میشه یکم راجع به الگوریتمت و اینکه می خوای چیکار کنی توضیح بده! اگه میشه راجع به ارروری هم که میده یه توضیحی بده!
    اعداد تام اعدادی هستند که مجموع مقسوم علیه های آنها با خود آن عدد برابر است
    مثلا مقسوم علیه های 6 عبارتند از:1و2و3
    که اگه جمعشون کنیم همون 6 به دست میاد
    من میخوام برنامه دو تا عدد رو از کاربر بگیره و اعداد تام بین اونها رو چاپ کنه
    برای یه دون عدد نوشتم که مشخص میکنه تام هست یا نه
    ولی برای اعداد تام بین دوعدد ارور میده و برای اون شمارنده j که برای حلقه for نوشتم میگه که تعریف نشده
    و بعد هم این ارور رو میده Index was outside the bounds of the array.

  4. #4
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: اعداد تام

    Index was outside the bounds of the array.
    این خطا به این دلیل رخ میده که شما به اندیسی از آرایه اشاره میکنید که بیشتر از طول ارایتون هست...
    حلقتون رو اصلاح کنید...

  5. #5

    نقل قول: اعداد تام

    نقل قول نوشته شده توسط ms2222 مشاهده تاپیک
    این خطا به این دلیل رخ میده که شما به اندیسی از آرایه اشاره میکنید که بیشتر از طول ارایتون هست...
    حلقتون رو اصلاح کنید...
    چطوری درستش کنم؟
    میتونین یه نگاهی به کد بندازین ببینین طول آرایه رو درست دادم یا نه؟
    اصلا کدی که نوشتم درست هست؟

  6. #6
    کاربر دائمی آواتار returnx
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    ?
    پست
    1,190

    نقل قول: اعداد تام

    for (j = 1; j <=a[i]; j++)

    دقت داشته باشید که در زبان های C Family اندیس ارایه از 0 شروع می شود و به n-1 ختم میشود به طور مثال :

    int
    [] array_name = newint[3];

    ارایه ما از 0 شروع می شود و به 2 ختم می شود ، که طول آرایه ما برابر 3 می شود...
    حالا با این توضیحاتی که دادم حلقتون رو تصحیح کنید...

  7. #7

    نقل قول: اعداد تام

    دوستان به نظرم درستش کردم ولی جواب بهم نمیده
    قسمت حلقش درست شد
    ولی موقعی که اجراش میکنم هیچ جوابی بهم نمیده
    یا جواب اشتباه میده
    این کدی که نوشتم
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication20
    {
    class Program
    {
    static void Main(string[] args)
    {
    int x = Int32.Parse(Console.ReadLine());
    int y = Int32.Parse(Console.ReadLine());
    int[] a = new int[y+1];
    int i,j,sum=0;

    for (i = x; i <= y; i++)
    {
    a[i] = i;
    }

    for (i = x; i <= y; i++)
    {
    for (j = 1; j <= a[i]; j++)
    {
    if (a[i] % j == 0)
    {
    sum = sum + j;
    }
    }
    if (a[i] == sum)
    {
    Console.WriteLine(a[i]);
    }
    sum = 0;
    }

    Console.ReadKey();
    }
    }
    }

    دوستان خواهشا اگه کسی میتونه کمکم کنه
    ممنون میشم

  8. #8

    نقل قول: اعداد تام

    با سلام خدمت شما دوست گرامی

    چرا اینقدر کارتونو سخت کردید

    خدمت شما


    int a = 0, b = 0, c = 0;
    Console.Write("Please Enter Number 1 :");
    a = int.Parse(Console.ReadLine());
    Console.Write("Please Enter Number 2 :");
    b = int.Parse(Console.ReadLine());

    if (a > b)
    {
    c = b;
    b = a;
    a = c;
    }

    Console.WriteLine("\n\n\nAdad Taam(Kamel)....");
    for (int i = a; i <= b; i++)
    {
    int s = 0;
    for (int j = 1; j < i; j++)
    {
    if (i % j == 0) s += j;

    }
    if (s == i) Console.WriteLine(s);
    }

    Console.ReadKey();


    موفق باشی
    بایت بایت

  9. #9

    نقل قول: اعداد تام

    دستت طلا داداش
    خیلی مردی
    من تازه شروع کردم به برنامه نویسی زیاد حرفه ای نیستم
    در هر صورت ممنون

تاپیک های مشابه

  1. پیدا کردن اعداد تام (اعداد کامل)
    نوشته شده توسط maminb در بخش VB.NET
    پاسخ: 8
    آخرین پست: پنج شنبه 22 آذر 1397, 17:57 عصر
  2. نوشتن الگوریتم تر کیب اعداد
    نوشته شده توسط maryam206 در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 6
    آخرین پست: یک شنبه 25 اردیبهشت 1390, 10:05 صبح
  3. اعداد فارسی در Crystal Reports
    نوشته شده توسط Abbas Arizi در بخش VB.NET
    پاسخ: 8
    آخرین پست: پنج شنبه 06 شهریور 1382, 11:29 صبح
  4. تعیین نوع اعداد را (فارسی / انگلیسی) در
    نوشته شده توسط habdolah در بخش Foxpro
    پاسخ: 3
    آخرین پست: پنج شنبه 30 مرداد 1382, 15:04 عصر
  5. نمایش اعداد به حروف
    نوشته شده توسط b_mohammadpoor در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: پنج شنبه 09 مرداد 1382, 20:28 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •