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

نام تاپیک: این برنامه با یونیون ها درست نوشتم ؟؟

  1. #1

    این برنامه با یونیون ها درست نوشتم ؟؟

    برنامه ای که معدل یا شماره دانشجویی یا شماره شناسنامه 20 دانشجو رو بگیره و مرتب کند؟از یونیون باید استفاده بشه میخام بدونم درست نوشتم اگه درست بود زیربرنامه ای مینویسم !
    #include<iostream.h>
    #include<conio.h>
    union student {
    int id;
    int ids;
    float avg;
    };
    void main()
    { int x,i,j;
    union student st[20],temp;

    cout<<"1-moadel"<<"\n";
    cout<<"2-shomare shenasname"<<"\n";
    cout<<"3-shomare daneshjoe"<<"\n";
    cin>>x;
    while(x>=1&& x<=3)
    {
    if(x==1)
    {
    for(i=0;i<20;i++)
    cin>>st[i].avg;

    for(i=20;i>0;i--)
    for(j=0;j<i;j++)
    if (st[j].avg<st[j+1].avg)
    {
    temp=st[j];
    st[j]=st[j+1];
    st[j+1]=temp;
    }
    for(i=0;i<20;i++)
    cout <<st[i].avg<< " ";
    }
    else
    if (x==2)
    {
    for(i=0;i<20;i++)
    cin>>st[i].id;

    for(i=20;i>0;i--)
    for(j=0;j<i;j++)
    if (st[j].id<st[j+1].id)
    {
    temp=st[j];
    st[j]=st[j+1];
    st[j+1]=temp;
    }
    for(i=0;i<20;i++)
    cout <<st[i].id<< " ";
    }
    else
    if (x==3)
    {
    for(i=0;i<20;i++)
    cin>>st[i].ids;

    for(i=20;i>0;i--)
    for(j=0;j<i;j++)
    if (st[j].ids<st[j+1].ids)
    {
    temp=st[j];
    st[j]=st[j+1];
    st[j+1]=temp;
    }
    for(i=0;i<20;i++)
    cout <<st[i].ids<< " ";
    }
    getch();
    } }

  2. #2
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مرداد 1391
    سن
    29
    پست
    596

    نقل قول: این برنامه با یونیون ها درست نوشتم ؟؟

    اولا شما میتونی از swtch استفاده کنی و برای هر کدوم از این 3 تا کار یک فانکشن بسازی
    دوما به جای این که 10 بار بزاری 20 اول برنامه بزار مثلا
    #define size 20
    هر جا خواستی size بزار که فایدش اینه اگر مثلا یک بار بخوای به جا 20 تا اسم 40 تا بگیری راحت اون define رو عوض می کنه دیگه لازم نیست بگردی هرچی 20 پیدا کردی بزاری 40 و البته کدت خواناتر هم میشه
    void main هم بهتره استفاده نکنی کمپایلر های جدیدتر همچین اجازه ای نمیدن
    و این که وقتی میشه cin.get() استفاده کرد چرا getch غیر استاندارد رو استفاده می کنی؟
    کدتو مرتب کن یک بار دیگه بزار...

  3. #3

    نقل قول: این برنامه با یونیون ها درست نوشتم ؟؟

    نقل قول نوشته شده توسط omidshaman مشاهده تاپیک
    اولا شما میتونی از swtch استفاده کنی و برای هر کدوم از این 3 تا کار یک فانکشن بسازی
    دوما به جای این که 10 بار بزاری 20 اول برنامه بزار مثلا
    #define size 20
    هر جا خواستی size بزار که فایدش اینه اگر مثلا یک بار بخوای به جا 20 تا اسم 40 تا بگیری راحت اون define رو عوض می کنه دیگه لازم نیست بگردی هرچی 20 پیدا کردی بزاری 40 و البته کدت خواناتر هم میشه
    void main هم بهتره استفاده نکنی کمپایلر های جدیدتر همچین اجازه ای نمیدن
    و این که وقتی میشه cin.get() استفاده کرد چرا getch غیر استاندارد رو استفاده می کنی؟
    کدتو مرتب کن یک بار دیگه بزار...
    بله نکاتی که گفتید درسته و اصلاح میکنم مشکل من این با توجه به تعریف یونیون و صورت برنامه الگوریتم برنامه رو درست پیدا کرده ام یا نه؟
    با توجه به تعریف یونیون که یکی از متغییر ها میتونن از فضای یونیون استفاده کنند درسته که از if یا switch استفاده کنم آیا ترفند دیگه ای هم هست؟

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

  1. چرا این برنامه درست اجرا نمیشه؟
    نوشته شده توسط fshb_ 1370 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 9
    آخرین پست: چهارشنبه 03 شهریور 1389, 17:42 عصر
  2. سوال: چرا این برنامه جواب درست نمیده ؟
    نوشته شده توسط saleh.hi.62 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: شنبه 22 خرداد 1389, 14:57 عصر
  3. یک برنامه برای کار با فایلها نوشتم ولی درست کار نمیکنه! مشکلش کجاست؟
    نوشته شده توسط shahab_sh در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: شنبه 23 دی 1385, 12:54 عصر
  4. این برنامه چطور درست میشه
    نوشته شده توسط nima_dir در بخش Access
    پاسخ: 3
    آخرین پست: چهارشنبه 26 مهر 1385, 08:01 صبح
  5. چرا این برنامه ها با دلفی نوشته نمی‌شن؟
    نوشته شده توسط linux در بخش برنامه نویسی در Delphi
    پاسخ: 15
    آخرین پست: سه شنبه 04 آذر 1382, 14:31 عصر

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

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