Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Lỗi khi xuất giá trị = 0 kiểu số nguyên trong bài tập min max?

  1. #1
    Ngày gia nhập
    02 2012
    Bài viết
    1

    Mặc định Lỗi khi xuất giá trị = 0 kiểu số nguyên trong bài tập min max?

    Mình vừa học C++ sang đến phần con trỏ, làm bài tập tìm min và max của dãy. Chương trình chạy xảy ra lỗi khi min hay max trùng với vị trí a[0]. Khi xuất ra vị trí thay vì ra là 0 thì nó lại là -85.... gì ấy. Ai biết tại sao giúp mình với. Cảm ơn nhiều. Đây là code mình viết :
    Code:
    #include<iostream.h>
    void main()
    {
    	int n,*p,*a,max,b,min,c;
    	cout<<"Nhap so phan tu cua day : ";cin>>n;
    	a=new int[n];
    	cout<<"Moi nhap day so"<<endl;
    	p=a;
    	for(int i=0;i<n;i++)
    	{
    		cout<<"a["<<i<<"]= ";cin>>*(p+i);
    	}
    	max=min=*p;
    	for(int j=0;j<n;j++)
    	{
    		if(max<*(p+j))
    		{
    			max=*(p+j);
    			b=j;
    		}
    		if(min>*(p+j))
    		{
    			min=*(p+j);
    			c=j;
    		}
    	}
    	cout<<max<<endl;
    	cout<<b<<endl;
    	cout<<min<<endl;
    	cout<<c<<endl;
    }

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Cần thơ
    Bài viết
    273

    Trích dẫn Nguyên bản được gửi bởi vophuvinh Xem bài viết
    Mình vừa học C++ sang đến phần con trỏ, làm bài tập tìm min và max của dãy. Chương trình chạy xảy ra lỗi khi min hay max trùng với vị trí a[0]. Khi xuất ra vị trí thay vì ra là 0 thì nó lại là -85.... gì ấy. Ai biết tại sao giúp mình với. Cảm ơn nhiều. Đây là code mình viết :
    Code:
    #include<iostream.h>
    void main()
    {
    	int n,*p,*a,max,b,min,c;
    	cout<<"Nhap so phan tu cua day : ";cin>>n;
    	a=new int[n];
    	cout<<"Moi nhap day so"<<endl;
    	p=a;
    	for(int i=0;i<n;i++)
    	{
    		cout<<"a["<<i<<"]= ";cin>>*(p+i);
    	}
    	max=min=*p;
    	for(int j=0;j<n;j++)
    	{
    		if(max<*(p+j))
    		{
    			max=*(p+j);
    			b=j;
    		}
    		if(min>*(p+j))
    		{
    			min=*(p+j);
    			c=j;
    		}
    	}
    	cout<<max<<endl;
    	cout<<b<<endl;
    	cout<<min<<endl;
    	cout<<c<<endl;
    }
    ngay dòng này:
    max=min=*p;
    bạn đã gán giá trị cho min và max thế tại sao bạn lại k gián vị trí cho chúng
    b = c = 0;

    xét với ctrinh của bạn thì nếu min hoặc max là a[0] thì giá trị của b hoặc c khi đến lúc xuất vẫn chưa có giá trị nên ctrinh sẽ lấy giá trị "rác" mà b và c đã có sẳn
    Ai bất tài, tôi nhìn hoài chẳng thấy,
    Đi khắp phòng tôi lấy 1 tấm gương,
    Khẽ đặt lên một góc phía bức tường,
    Nhìn vào đó, tôi tận tường kẻ đó.

  3. #3
    Ngày gia nhập
    04 2012
    Bài viết
    2

    Mặc định sao mà phức tạp hóa vấn đề vậy bạn

    min max trong dãy số thi chỉ cần cho max =a1
    rồi cho vòng for chạy dể kiểm tra nếu a2>a1 thì max=a2
    min thì tương tự thôi
    nếu dùng con trỏ thi cũng vậy

  4. #4
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    381

    Mặc định Lỗi khi xuất giá trị = 0 kiểu số nguyên trong bài tập min max?

    C++ Code:
    1. #include<iostream.h>
    2. void main()
    3. {
    4.     int n,/**p,*/*a,max,b,min,c; //Dùng con tro p làm gì? => th?a
    5.     cout<<"Nhap so phan tu cua day : ";cin>>n;
    6.     a=new int[n];
    7.     cout<<"Moi nhap day so"<<endl;
    8.     //p=a; b? cái này di
    9.     for(int i=0;i<n;i++)
    10.     {
    11.         cout<<"a["<<i<<"]= ";cin>>*(p+i); //Sua thanh cin>>a[i];
    12.     }
    13.     max=min=*p; // s?a thành max = min = a[0];
    14.     b = c = 0; // thêm cái này vào;
    15.     for(int j=0;j<n;j++) // s?a thành for(int j = 1; j < n; j++)
    16.     {
    17.         if(max<*(p+j)) // s?a thành max < a[j];
    18.         {
    19.             max=*(p+j); // max = a[j];
    20.             b=j;
    21.         }
    22.         if(min>*(p+j)) // s?a thành min > a[j];
    23.         {
    24.             min=*(p+j); // min = a[j];
    25.             c=j;
    26.         }
    27.     }
    28.     cout<<max<<endl;
    29.     cout<<b<<endl;
    30.     cout<<min<<endl;
    31.     cout<<c<<endl;
    32.     delete a; // gi?i phóng con tr? a
    33. }

    skype: hvphu2010
    Yahoo: hvphu2010
    Sdt: 0129 609 4567

Các đề tài tương tự

  1. Xuất số nguyên tố trong mảng 2 chiều
    Gửi bởi hoang minh nguyen trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 04-11-2013, 01:21 PM
  2. Mảng trên C Có 2 số nguyên nhập vào mảng tìm số lần xuất hiện trong mảng
    Gửi bởi o0mickey0o trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 14-11-2012, 05:02 PM
  3. Bài tập C Đếm số lần xuất hiện của số nguyên trong mảng.
    Gửi bởi navyblue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 10-05-2011, 01:16 PM
  4. Bài tập C++ kiểm tra và xuất số nguyên tố trong ma trận vuông
    Gửi bởi tranbacongbee trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 01-04-2011, 09:36 PM
  5. xuất các số nguyên trong mảng
    Gửi bởi hugo4mat trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 23-03-2009, 11:18 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn