30/09/2018, 16:20
Lỗi error: 'nhapmang' was not declared in this scope?
Mình đang viết chương trình kiểm tra 1 mảng có tăng dần hay ko. Tuy nhiên khi compile thì chương trình của mình không chạy mà thông báo ra lỗi sau
E:workspacecodeblockscppprojectmain.cpp|10|error: ‘nhapmang’ was not declared in this scope|
E:workspacecodeblockscppprojectmain.cpp|12|error: ‘ktmangtang’ was not declared in this scope|
Đây là toàn bộ code của mình
#include <stdio.h>
#define max 100
int main()
{
int a[max], n;
nhapmang(a,n);
printf("Ket qua: %d ");
ktmangtang(a,n);
//xuatmang(a,n);
return 0;
}
void nhapmang(int a[], int &n)
{
int i;
printf("Nhap so phan tu cua mang n = ");
scanf("%d", &n);
for(i=0;i<n;i++)
{
printf("a[%d] = ", i);
scanf("%d", &a[i]);
}
}
/*
void xuatmang(int a[], int n)
{
int i;
printf("Noi dung mang la:
");
for(i=0;i<n;i++)
printf("a[%d] = %d ", i, a[i]);
}
*/
int ktmangtang(int a[], int n)
{
int flag=1;
for(int i=0; i<n-1; i++)
if (a[i]>a[i+1]) //Vi pham dieu kien tang
{
flag=0;
break;
}
return flag;
}
Bài liên quan
Bạn hỏi gì??
@Ph_m_Ng_c_L_nh nên đặt câu hỏi cụ thể hơn
Ví dụ về những câu hỏi gần đây trên diễn đàn: Đổi giá trị 2 số cho nhau
Cho mình hỏi code mình sai chỗ nào mà ko chạy đc vậy bạn ? Mình đang viết chương trình kiểm tra 1 mảng có tăng dần hay ko.
Vậy @Ph_m_Ng_c_L_nh phải định nghĩa như thế nào là không chạy được chứ?
Đã sửa tiêu đề thành
P/S: Đây là code C++, không phải code C.
E dùng hàm int ktmangtang(int a[], int n); để xem các số nguyên trong mảng có tăng dần hay ko (trả về 1 nếu tăng dần, ngc lại thì trả về 0).
Đây là một câu khẳng định, câu phát biểu. Đâu là câu hỏi?
E đang học C mà a. Câu hỏi là chương trình e bị sai chỗ nào mà ko chạy đc vậy a ?
Đây là code C++, không phải C. C không có
int & n
Chương trình của em bị sai rất nhiều chỗ, bởi vì em không hiểu cơ bản. Nhưng cái quan trọng hơn hết là em không biết cách đặt câu hỏi. Em xem từ trên xuống dưới anh hỏi em bao nhiêu câu hỏi. Rốt cục em vẫn cứ khăng khăng là chương trình em không chạy, trong khi em không định nghĩa như thế nào là không chạy.
Anh compile sơ qua thì thấy chương trình em compile lỗi, nếu chương trình bị lỗi, hãy copy lỗi và chỉ cho mọi người thấy chương trình của em bị lỗi.
Lỗi đầu tiên là
Đó là do em không khai báo 2 hàm prototypes
Lỗi tiếp theo là em in ra
%d
mà em không cho vào biến nàoNếu em không xem lại cách mình đặt câu hỏi, thì em sẽ khó lòng mà học lập trình được.
Video hướng dẫn prototype xem ở đây
Thầy dạy em vẫn dùng void nhapmang(int a[], int &n);
Không có nghĩa đấy là C, nhiều bạn vẫn cứ nhầm
int & n
là C. Nhưng đấy không phải là C mà là C++.C không có khái niệm reference. tức việc khai báo
int & n
là không hợp lệC++ có khái niệm reference, tức việc khai báo
int & n
là hợp lệTrong C, dấu
&
chỉ có công dụng lấy địa chỉ, không thể viếtint & n
. E có thể compile được và chạy được bởi vì em đang viết code C++. Anh đoán là em đang dùng Visual Stdio, tạo project C++ và code C.Em thử download một IDE khác như CodeBlocks, tạo project C, và viết toàn bộ code của em vào. Khi đó em sẽ thấy báo lỗi ngay.
Đúng rồi đó a, bên Code Block e tạo project C và kết quả ko chạy đc.
E tạo project C++ thì chạy đc rồi a.
E cũng có dùng C-Free nữa, nó thì chạy ngon ơ ko như CodeBlock
I moved 2 posts to a new topic: Trong 1 project mình có thể thêm file cpp nữa không?
Anh KHÔNG TIN. Việc C không có
int & n
có nghĩa là, nhắc lại một lần nữa, C không cóint & n
.Không có chuyện vô lý:
Khi đã học lập trình thì cái cái gì không có, tức là không có. Việc C-Free chạy được thì có nghĩa là em đã tạo project C++, chứ không phải C.
Trong khi dạy có thể lúc đó bạn chưa học con trỏ hoặc thầy dùng C++ quen rồi nên thầy để kiểu tham chiếu là trong C++,tất nhiên là project C++.Bạn để ý file bài tập thầy gửi cho bạn có đuôi là .cpp (c plus plus)
Trong C thì bạn nên dùng con trỏ thay cho tham chiếu.
khó quá. bỏ qua thôi =))
Lâu lâu nói đúng