01/10/2018, 11:42
Sửa lỗi bài tập C này giúp em với ạ
bài này em nhập kết quả cứ tới phần tủ cuối cùng là chương trình đứng ngay
code:
int tongArray(int array[], int kichThuocMang);
int main(int argc, char* argv[]) {
int mangA[10];
//khoi tao cac gia tri trong mang
int i;
for(i = 0; i < 10; i++) {
printf("Phan tu %d: ", i);
scanf("%d", &mangA[i]);
}
// hien thi tong array len man hinh
printf("%d", tongArray(mangA[i], 10));
return 0;
}
// function tinh tong cac gia tri cua mangA
int tongArray(int array[], int kichThuocMang) {
int Tong = 0; // bien de luu tong cac gia tri cua mangA
int i;
for(i = 0; i < kichThuocMang; i++) {
Tong += array[i];
}
return Tong;
}
Bài liên quan
Khi build không báo lỗi à bạn?
Hàm tongArray nhận vào tham số là 1 mảng và số nguyên. Trong hàm main bạn sửa lại là : printf("%d", tongArray(mangA, 10))
nó báo là has stop working đó bạn
Tại sao lại như vậy vậy bạn Có phải tại vì %d ko
Bạn đang dùng gì để code vậy? Compiler của bạn không báo lỗi gì sao
mình dùng codeblock do anh ĐẠt giới thiệu đó bạn, chương trình ko báo lỗi chỉ báo là has stop working
Bạn đã đọc ở phần báo lỗi chưa?
Chào bạn NanhNanh!
Cho mình hỏi bạn biết mảng là gì và phần tử mảng là gì?
Cách viết mảng và cách viết phần tử mảng?
Chào bạn NanhNanh!
vậy bạn hiểu lỗi của bạn chưa!
em liệt kê phần tử mảng băng vòng for đó anh, viết 1 tham số mảng thì mình dùng array[]
Bạn giải thích rõ hơn lỗi của mình được không tại mình hơi chậm
nó có báo thế này nè bạn
warning: passing argument 1 of ‘tongArray’ makes pointer from integer without a cast|
Chào NanhNanh!
bạn phải hiểu sự khác biệt giữa 2 đoạn code sau:
1.
điểm giống nhau của (1) và (2) là chúng đều thực thi n lần. Khác biệt là (1) compile sẽ in ra màn hình là n. (2) compile sẽ thông báo lỗi! vì biến i là biến cục bộ trong vòng lặp for.
Mình có hơi hiểu ý bạn nói có phải là do Mình chỉ gửi vào tham số là mangA[10] thôi đúng ko bạn. Nếu muốn đúng thì phải gửi vào nguyên 1 mang bằng cách gõ mangA[] hoặc *mangA đúng ko bạn
Lỗi của bạn là truyền không đúng kiểu của đối số
Bạn truyền vào kiểu giá trị
int
trong khi bạn đặt nó làint []
có lẽ là do bạn chưa hiểu về mảng.Cách giải quyết:
chuyển
printf("%d", tongArray(mangA[i], 10));
thànhprintf("%d", tongArray(mangA, 10));
vìmangA[i]
không phải là mảng màmangA
mới là mảngin ra màn hình n - 1 phải không bạn. compiler của mình không cho khai báo int i = 0 trong vòng for. Mình xài IDE codeblock
Chào NanhNanh!
Bạn hiểu mảng không? 10 pt trong mảng từ 0 -> 9 bạn gửi thằng 10 làm gì có.
Mảng trong C:
Bạn nên học lại mảng.
cám ơn chia sẽ của bạn tại mình đang học mảng. chắc từ giờ tới chiều còn hỏi nhìu nhìu mấy bạn chịu khó lên coi và giải đáp giúp mình với
Nếu mình ghi là mangA[] hoặc *mangA thì oke đúng không bạn hoặc chỉ ghi mangA
như ở phần giải quyết của mình
không ghi mảng
mangA[]
hoặc*mangA
Cám ơn bạn nhiều. Bạn vui lòng giải thích cho mình là tại sao lại ko thể ghi là 2 cách kia được không. Và 2 cách mình vừa nói đó là gì vậy bạn