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

Đề tài: Lỗi Rune-time check failure - The variable is being used without being defined?

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    3

    Mặc định Lỗi Rune-time check failure - The variable is being used without being defined?

    Giúp mình với, khi chạy nó báo lỗi Rune-time check failure #3 - The variable 'N' is being used without being defined.

    Mình đã thử sửa mà ko dc, nhờ các bạn giúp mình nhé

    Code:
    #include <iostream>
    #include <fstream>
    using namespace std;
    #define MAX 100
    void docfile(int a[MAX],int N)
    {
    	int i, j;
    	ifstream in("text.txt", ios::in);
    	in>>N;
    	cout<<"Day so trong file text.txt la : "<<endl;
    	for(i=0; i<N; i++)
    		in>>a[i];	
    	for(i=0; i<N; i++)	
    		cout<<a[i]<<" ";
    	cout<<endl;
    	in.close();
    }
    void chon(int a[MAX], int N)
    {
    	int i, j, tam, k;
    	for(i=1; i<N; i++)
    	{
    			k=i;
    			for(j=i+1; i<N; j++)
    			{
    				if (a[i]>a[j])
    					k=j;
    			}
    	tam = a[i]; a[i] = a[j]; a[j] = tam;
    	}
    }
    
    
    void main()
    {
    	int a[MAX], N, i;
    	docfile(a,N);
    	chon(a,N);
    	cout<<"Day duoc sap xep lai la : ";
    	for(i=0; i<N; i++)
    		cout<<a[i]<<" ";
    	system("pause");
    }

  2. #2
    Ngày gia nhập
    08 2010
    Bài viết
    17

    Hàm docfile bạn muốn thay đổi giá trị của N (thông qua in >> N) thì cần truyền N vào hàm theo kiểu con trỏ:

    Code:
    void docfile(int a[MAX],int* N)
    Hoặc tham chiếu:

    Code:
    void docfile(int a[MAX],int& N)
    Ở hàm main, sau khi gọi docfile, truyền N vào, bạn hy vọng N đã thay đổi, nhưng thật ra vì truyền theo kiểu trị (tức là copy ra 1 N khác và gửi bản copy của N đó cho docfile) nên N vẫn chưa thay đổi, và tức là N vẫn mang giá trị ban đầu (không biết bằng bao nhiêu, vì khi định nghĩa N, bạn chưa khởi gán cho nó).

    Do đó truyền N (chưa được khởi gán giá trị nào hết) vào hàm chon rồi dùng thì sẽ gây lỗi.

    Mình nghĩ vậy :-D

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

  1. Bài tập C Lỗi Runtime Check Failure #3
    Gửi bởi csfire trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 14-12-2011, 09:12 AM
  2. ADO.NET Chỉ cho phép check một dòng trong cột check trên Datagridview
    Gửi bởi bkmt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 02-12-2011, 08:21 AM
  3. sửa lỗi A local variable named 'tam' is already defined in this scop như thế nào?
    Gửi bởi bancalem trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 03-10-2010, 06:40 PM
  4. Lỗi "Run-time check failure #2"
    Gửi bởi akhoi90 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 06-02-2009, 05:47 PM
  5. Dùng time kết hợp date/time/year để auto...
    Gửi bởi luboquanvu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 33
    Bài viết cuối: 13-12-2008, 10:58 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