[Video] C++ Bài 28 - Truyền mảng một chiều vào hàm

#Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
#Thông tin về khóa học xem tại đây :

-Sự khác biệt giữa 2 khóa học cũ và mới :
+Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả.
+Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại… Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học cũ giúp đỡ việc lắng nghe và hiểu được tốt hơn.

1 Like


như ở bài 28 thì ta gán cho mảng 1 chiều 1 hàm num đc nhưng hôm nay tôi xem video https://www.youtube.com/watch?v=147UtsNfXU8&index=30&list=PLyiioioEJSxHVTaeL-ELYy6Io-I8diIVZ
định gán cho mảng 2 chiều 2 số x,y cho tiện thì bị lỗi …
ai biết tại sao ko…
P/S : đang học mấy cái này phục vụ cho công việc thôi :
chủ yếu ,aimbot =winAPI,wallhack =directX SDK

#include <iostream>
 #include <stdlib.h>
 #include <string>
 using namespace std;
int truyen(int *mang1chieu,int x,int y)
 {
     for (int xx=0;xx<x;xx++)
     {
         for (int yy=0;yy<y;yy++)
     {
         cout<<mang1chieu[xx][yy]<<" ";
     }
     cout<<endl;
     }
 }

 int main()
 {
     int mang1chieu[2][2]={{6,7,8},{1,2,3}};
     truyen(mang1chieu,1,1);
}

nó bị cái lỗi

||=== Build: Debug in a (compiler: GNU GCC Compiler) ===|
C:\Users\lioncyber97\Desktop\a\main.cpp||In function ‘int truyen(int*, int, int)’:expressionless:
C:\Users\lioncyber97\Desktop\a\main.cpp|11|error: invalid types ‘int[int]’ for array subscript|
C:\Users\lioncyber97\Desktop\a\main.cpp|15|warning: no return statement in function returning non-void [-Wreturn-type]|
C:\Users\lioncyber97\Desktop\a\main.cpp||In function ‘int main()’:expressionless:
C:\Users\lioncyber97\Desktop\a\main.cpp|19|error: too many initializers for ‘int [2]’|
C:\Users\lioncyber97\Desktop\a\main.cpp|19|error: too many initializers for ‘int [2]’|
C:\Users\lioncyber97\Desktop\a\main.cpp|20|error: cannot convert ‘int ()[2]’ to 'int’ for argument ‘1’ to ‘int truyen(int*, int, int)’|
||=== Build failed: 4 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|

Vòng for sai tùm lum rồi, mảng 2 chiều có 2 dòng + 2 cột mà sao lại khai báo 6 phần tử???
Truyền mảng cũng sai luôn, lệnh cout cũng sai cú pháp nhé…sai rất nhiều

Nếu mục tiêu là muốn in mảng thì phải là " void truyen(…) "

anh Đạt cho em hỏi, làm cách nào để truyền 1 hoặc vài tham số vào hàm rồi sau khi quay trở ra thì giá trị các tham số đó giữ nguyên ko bị mất? Bên pascal e thì nó thế này
vd:

var i:integer;

proceduce ham(var i:integer);
var j:integer;
begin
  for j:= 1 to 10 do i:=i+1;
end;

begin
  i:=0;
  ham(i);
  write(i);
readln
end,

thì xuất ra i sẽ là 10 còn trong C++ thì làm ntn vậy a?

Em sử dụng con trỏ hoặc là reference, xem các video liên quan tới con trỏ và reference nhé

http://portal.daynhauhoc.com/p/hoc-lap-trinh-ngon-ngu-cpp/

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?