#include<stdio.h>
#include<conio.h>
#include<math.h>
#define MAX 100
Nhap(int a[],int &n)
{
int i;
do
{
printf("\nNhap so phan tu cua mang: ");
scanf("%d",&n);
if(n<10 || n>MAX) printf("So phan tu khong hop le, moi ban kiem tra lai");
}
while(n<10 || n>MAX);
for(i=0;i<n;i++) {
printf("Nhap a[%d]=",i);
scanf("%d",&a[i]);}
}
Xuat(int a[],int n)
{
int i;
for (i=0;i<n;i++) {
printf("%d",a[i]);
printf(" ");}
}
main()
{
int a[MAX];
int n;
Nhap(a,n);
printf("Mang gom cac phan tu: ");
Xuat(a,n);
}
Mình viết chương trình C thì có thể viết như thế này không nhỉ, ở chỗ hàm con có &n ấy?
&n là tham chiếu, mà tham chiếu không có trong C.
Bạn định nghĩa Nhap là gì? Là 1 hàm hay 1 thủ tục? Tại sao không có tên kiểu?
Cái này trong dev c đó a. Không có auto void
bạn học lại về pointer nhé, pointer lưu địa chỉ của vùng nhớ
khi gọi hàm func:
- khi cần chỉnh sửa một biến (
n) đưa vào từ bên ngoài hàm, bạn đưa địa chỉ (&n) vào làm tham sốfunc(&n)
bên trong định nghĩa hàm func :
- khi định nghĩa hàm này, kiểu dữ liệu của tham số trên phải là pointer (để lưu được địa chỉ)
void func(int *pointer_to_n) - bên trong hàm, cần scanf thì đưa pointer này vào luôn, vì rõ ràng nó đòi một địa chỉ
scanf("%d", pointer_to_n) - cần lấy giá trị
n, tức là giá trị tại địa chỉ được trỏ tới bởipointer_to_n, thì dùng toán tử
n = *pointer_to_n
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?