NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3766 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 10 از 10

موضوع: مشکل این برنامه چیه ؟

  1. #1
    عضو جدید
    تاریخ عضویت
    Oct 2010
    نوشته ها
    17
    تشکر
    37
    تشکر شده 2 بار در 2 پست

    Exclamation مشکل این برنامه چیه ؟

    سلام. بر نامه یی که کدشو قرار دادم ، برنامه ییه که مشخصات و نمره ی n نفر رو می گیره و سپس مشخصات و نمره دانشجوی تاپ رو اعلام می کنه . این کدی که گذاشتم error نمی گیره ولی وقتی اجرا میشه خطا می ده . لطفا بهم بگید که اشکال کار کجاست .
    کد:
    #include "stdafx.h" #include "iostream" #include "conio.h" using namespace std;  struct student{ 	char fname[20]; 	char lname[20]; 	float avg; };  int _tmain(int argc, _TCHAR* argv[]) { 	student *p; 	int n,top_stu; 	cout<<"How many students you have ?" <<endl; 	cin>>n; 	n--; 	p = new student[n];  	 for(int i=0;i<=n;i++){ 	 cout<<endl<<"enter student ["<<i+1<<"] `s details : "; 	 cin>>p->fname; 	 cin>>p->lname; 	 cin>>p->avg; 	 p++; 	 } 	 float max=0; 	 for(int i=0;i<=n;i++){ 		 if((p+i)->avg > max){ 			max = (p+i)->avg; 			top_stu = i;} 	 } 	 cout<<(p+top_stu)->fname<<endl<<(p+top_stu)->lname<<endl<<max; 	 delete [] p;  	_getch(); 	return 0; }

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    سلام
    موقع اجرا چه خطايي ميده؟
    لطفا فايل exe رو هم بذاريد.
    کد:
    #include "stdafx.h" 
    #include "iostream" 
    #include "conio.h" 
    
    using namespace std;  
    
    struct student{     
       char fname[20];     
       char lname[20];     
       float avg; 
    };  
    
    int _tmain(int argc, _TCHAR* argv[]) {
       student *p;     
       int n,top_stu;     
       
       cout<<"How many students you have ?" <<endl;     
       cin>>n;     
       n--;     
       p = new student[n];       
       for(int i=0;i<=n;i++){      
         cout<<endl<<"enter student ["<<i+1<<"] `s details : ";      
         cin>>p->fname;      
         cin>>p->lname;      
         cin>>p->avg;      
         p++;      
       }      
       float max=0;      
       for(int i=0;i<=n;i++){          
         if((p+i)->avg > max){
           max = (p+i)->avg;
           top_stu =i;
         }      
       }      
      cout<<(p+top_stu)->fname<<endl<<(p+top_stu)->lname<<endl<<max;      
      delete [] p;      
      _getch();     
      return 0; 
    }
    ویرایش توسط sadmonew : 28-10-2013 در ساعت 09:52
    _____________________________________
    _____________________________________

  4. تشکرها از این نوشته :


  5. #3
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2011
    نوشته ها
    26
    تشکر
    147
    تشکر شده 29 بار در 12 پست

    پیش فرض

    نکته اول اینکه شما اشاره گر به ساختار student را در هنگام ذخیره سازی افزایش دادید و حالا که میخواهید شروع کنید باید به ابتدای آن برگردید. بهترین کار استفاده از لیست پیوندیست به گونه ای که ساختار شما اشاره گر به ساختار بعدی را در خودش ذخیره کند.
    کد:
       for(int i=0;i<=n;i++){      
         cout<<endl<<"enter student ["<<i+1<<"] `s details : ";      
         cin>>p->fname;      
         cin>>p->lname;      
         cin>>p->avg;      
         p++;      
       }
    در حقیقت برنامه به اینجا که میرسد به ازای i>0 اصلا ساختاری تعریف نشده که بخواهد متغییر avg را بخواند.
    کد:
       for(int i=0;i<=n;i++){          
         if((p+i)->avg > max){
           max = (p+i)->avg;
           top_stu =i;
         }      
    }

  6. تشکرها از این نوشته :


  7. #4
    کاربر علاقه مند
    تاریخ عضویت
    Jan 2011
    نوشته ها
    26
    تشکر
    147
    تشکر شده 29 بار در 12 پست

    پیش فرض

    در ضمن به هنگام دریافت ورودی تعداد دانش آموزان حتما چک کنید که از یه حدی بیشتر نباشه مثلا 1000 دانش آموز. چون میتونه باعث سرریز پشته بشه.

  8. #5
    کاربر علاقه مند ERSA آواتار ها
    تاریخ عضویت
    May 2012
    نام
    بردیا
    نوشته ها
    64
    تشکر
    54
    تشکر شده 97 بار در 31 پست

    پیش فرض

    سلام

    نخواستم تاپیک جدید ایجاد کنم.امروز یه برنامه ساعت دیجیتال نوشتم واسه دلخوشی.تو پروتئوس درست کار میکنه :




    اما بعد از عملی بستن یه سری عدد نشون میده :





    مشکل از کجا میتونه باشه؟فایل پروتئوس + هگز رو ضمیمه کردم.این هم کدم در اتمل استودیو :


    [PHP]

    #include <avr/io.h>
    #include <util/delay.h>
    #include "lcd.h"




    int main(void)
    {

    //-----------------------
    DDRD=0xff;
    DDRB=0x00;
    DDRC=0xff;
    lcd_init(LCD_DISP_ON);
    lcd_gotoxy(0,0);
    //-----------------------

    int hour,min,sec=0;
    char a[5];
    char b[5];
    char c[5];

    lcd_clrscr();

    loop:
    lcd_gotoxy(6,0);
    lcd_puts(":");
    lcd_gotoxy(9,0);
    lcd_puts(":");


    itoa(sec,a,10);
    itoa(min,b,10);
    itoa(hour,c,10);
    lcd_gotoxy(4,0);
    lcd_puts(c);
    lcd_gotoxy(7,0);
    lcd_puts(b);
    lcd_gotoxy(10,0);
    lcd_puts(a);
    _delay_ms(200);
    while(1){

    if(PINB==1){

    sec++;
    lcd_clrscr();
    goto loop;


    }
    if(PINB==2){

    min++;
    lcd_clrscr();
    goto loop;
    }

    if(PINB==4){

    hour++;
    lcd_clrscr();
    goto loop;
    }

    if(PINB==8){
    break;
    }









    }



    while (1){

    sec++;

    if(sec==60){

    min++;
    sec=0;
    if(min==60){
    hour++;
    min==0;
    }
    if(hour==24){
    hour = 0;
    min=0;
    sec=0;


    }



    }



    lcd_gotoxy(6,0);
    lcd_puts(":");
    lcd_gotoxy(9,0);
    lcd_puts(":");



    itoa(sec,a,10);
    itoa(min,b,10);
    itoa(hour,c,10);
    lcd_gotoxy(4,0);
    lcd_puts(c);
    lcd_gotoxy(7,0);
    lcd_puts(b);
    lcd_gotoxy(10,0);
    lcd_puts(a);
    _delay_ms(1000);
    lcd_clrscr();




    }








    return 0;





    }


    [/PHP]


    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 2013-12-26_045529.jpg
مشاهده: 124
حجم: 135.9 کیلو بایت   برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: photo.JPG
مشاهده: 102
حجم: 98.9 کیلو بایت  
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: zip Test.zip (14.7 کیلو بایت, 38 نمايش)

  9. #6
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    اما بعد از عملی بستن یه سری عدد نشون میده :
    سلام
    احتمالا پایه های دیتا در lcd به صورت نادرست متصل شدن .

  10. تشکرها از این نوشته :


  11. #7
    کاربر علاقه مند ERSA آواتار ها
    تاریخ عضویت
    May 2012
    نام
    بردیا
    نوشته ها
    64
    تشکر
    54
    تشکر شده 97 بار در 31 پست

    پیش فرض

    نقل قول نوشته اصلی توسط 1nafar نمایش پست ها
    سلام
    احتمالا پایه های دیتا در lcd به صورت نادرست متصل شدن .
    سلام.پایه هارو چک کردم مشکلی ندارند.برای اطمینان یه string هم اولش اضافه کردم به درستی نمایش داد اما بعد از اون که به اعداد رسید دوباره

  12. #8
    کاربر فعال M_GH آواتار ها
    تاریخ عضویت
    Mar 2012
    نام
    م. غیور
    نوشته ها
    314
    تشکر
    464
    تشکر شده 367 بار در 177 پست

    پیش فرض

    مهندس این رو ی تست بزن !

    کد:
    int hour=0,min=0,sec=0;

  13. تشکرها از این نوشته :


  14. #9
    کاربر علاقه مند ERSA آواتار ها
    تاریخ عضویت
    May 2012
    نام
    بردیا
    نوشته ها
    64
    تشکر
    54
    تشکر شده 97 بار در 31 پست

    پیش فرض

    نقل قول نوشته اصلی توسط M_GH نمایش پست ها
    مهندس این رو ی تست بزن !

    کد:
    int hour=0,min=0,sec=0;
    مرسی نکته مهمی بود!

  15. تشکرها از این نوشته :


  16. #10
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    نقل قول نوشته اصلی توسط ERSA نمایش پست ها
    مرسی نکته مهمی بود!
    سلام
    شما میتونید با انتشار تجریبات و روش حل مشکل ، سایر افرادی که ممکنه در اینده با مشکل شما روبرو بشن رو یاری کنید .

مجوز های ارسال و ویرایش

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