اطلاعیه

Collapse
No announcement yet.

آرايه در ++c

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • آرايه در ++c

    با ياد او ؛
    سلام و عرض ادب .

    از استادان عزيز خواهشي داشتم ،مبني بر اينكه در تابع زير دقيقاْ [arr[j را براي چه امري تعريف و استفاده كرديم ؟
    متشكر ميشم توضيح كاملي در رابطه با حلقه اي كه [arr[j استفاده شده بدين .

    کد:
    void findterate(float arr[],int k)
    int main()
    {
    const int k = 10;
    float arr[k];
    cout << "\n ENTER " << k << " average and press enter :\n";
    for (i = 0;i<k;i++)
     cin >> arr[i];
    findterate(arr,k);
    return 0;
    }
    //****************
    void findterate(float arr[],int k)
    {
    int max_count = -1;
    float max_value;
    int i,j ,current_count;
    float current_value;
    for (i=0;i<k;i++){
     current _value = arr[i];
     current_count = 0;
     for (j=0;j<k;j++)
      if (arr[j]== current_value)
           current_count++;
      if (current_count > max_count ){
          max_count = current_count;
          max_value = current_value;
       }//end of if
      }//end of for
    cout <<"\n max iteration of ave :" << max_value << "is" << max_count;
    }
    اگر به خواسته ی وجدان عمل کنیم به سوی حقیقت حرکت کردیم و متوجه میشیم چه دینی کامل و چه راهی راه مستقیم هست

  • #2
    کد:
    int main()
    {
    const int k = 10;
    float arr[k];
    cout << &quot;\n ENTER &quot; << k << &quot; average and press enter :\n&quot;;
     [COLOR=Red]for (i = 0;i<k;i++)
     cin >> arr[i];[/COLOR]
    findterate(arr,k);
    return 0;
    }
    //****************
    void findterate(float arr[],int k)
    {
    int max_count = -1;
    float max_value;
    int i,j ,current_count;
    float current_value;
    for (i=0;i<k;i++){
    [COLOR=Red]   current _value = arr[i];[/COLOR]
     current_count = 0;
     for (j=0;j<k;j++)
      if (arr[j]== current_value)
           current_count++;
      if (current_count > max_count ){
          max_count = current_count;
          max_value = current_value;
       }//end of if
      }//end of for[COLOR=Red]
    cout <<&quot;\n max iteration of ave :&quot; << max_value << &quot;is&quot; << max_count;[/COLOR]
    }
    اين كد ( بدون در نظر گرفتن Syntax error يا ... ) ميانه 10 تا عدد كه از ورودي گرفته شده و تو arr ذخيره شده رو بدست مياره
    تو حلقه اول صرفا اعداد خونده ميشه
    تو Assignment دومي يك به يك با بقيه مقايسه و در نهايت جواب ، ميانه عناصر آرايه رو چاپ ميكنه
    اگه منظور پيچيده تري داري بگين
    Last edited by V1T4L; 06-30-2007, 08:31 PM.
    ......

    به سلامتي شبگرد ...

    Comment


    • #3
      به نظر من این کد تعداد دفعات و عددی رو پیدا میکنه که در آرایه arr از همه بیشتر تکرار شده باشه
      همونطور که میبینید در تابع main اعداد از ورودی گرفته میشوند . و در حلقه اول تابع findterate
      for (i=0;i<k;i++){
      current _value = arr[i];
      current_count = 0;

      اولین عنصر در آرایه را در current_value قرار میدهد و مقدار current_count که برابر تکرار این عنصر
      در آرایه میباشد را صفر میکند.و تا پایان بر فرض اینکه این عنصر ،عنصر مورد نظر است ، تعداد دفعات تکرار
      آنرا با استفاده از حلقه for j پیدا میکند .
      در حلقه for j با دستور
      if (arr[j]== current_value)
      current_count++;
      هر بار که عنصر را دو باره مشاهده میکند ، مقدار current_count یک واحد افزایش پیدا میکند.
      و با دستور
      if (current_count > max_count ){
      max_count = current_count;
      max_value = current_value;

      چک میکند که ببیند تعداد دفعات تکرار این عدد بیشتر است یا عدد قبلی ،
      اگر تعداد دفعات تکرار این عدد بیشتر شد ، خود عدد و تعداد دفعات تکرار عدد را به ترتیب در متغییر های max_value و max_count ذخیره میکند.
      امیدوارم توضیحاتم بدرد بخور باشه
      بجای نفرین به تاریکی بیایید شمعی بیفروزیم .
      تمام ظلمت جهان نمیتواند روشنایی یک شمع را از بین ببرد .
      خلاصه اینکه همیشه شمع داشته باشین تو خونه به درد میخوره ...

      Comment

      Working...
      X