Theo mình thì n chưa xác định , lỡ nó bằng 0 thì sao . Nên trình biên dịch báo lỗi .
C Code:
double view_balance(int min,int max,double acc[100],double type[100],double amount[100],char n) { int flag[n]={0};// tại sao chỗ lại báo lỗi.Anh nào sửa dum em int sum=0;total=0; for(int i=0;i<n;i++) if(acc[i]>min&&acc[i]<max&&flag[i]==0) { for(int j=i+1;i<n;j++) if(acc[j]==acc[i]) { sumt=type[i]=='d'?amount[j]:-amount[j]; flag[j]=1; } total+=sum; sum=0; } return total; }
Theo mình thì n chưa xác định , lỡ nó bằng 0 thì sao . Nên trình biên dịch báo lỗi .
Nếu tôi nhớ không nhầm thì khai báo:
int Flag[n];
->n là kiểu int
->n xác định hoặc là số cụ thể hoặc là #define n ... hoặc là const n ...
Bạn thử đọc lại xem. Tui lâu rùi không nhớ là có cách khai báo với char n như bạn không.
Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.
- Trong khai báo mảng tĩnh (static array) thì kích thước mảng phải là một hằng số nghĩa là một số xác định hay là một #define trước.Còn khởi gán mảng toàn 0 như vậy chính xác rồi!int flag[n]={0};// tại sao chỗ lại báo lỗi.Anh nào sửa dum em
Ex:
Code:int flag[10]={0}; //hợp lệ- Còn bạn muốn cần bao nhiêu thì khai bấy nhiêu thì phải dùng mảng động..Code:#define N 10 ........ int flag[N]={0}; //hợp lệ
No way, No success..
Một kỉ niệm đẹp T_T :
Ngày xưa tui cũng hỏi y chang và bị dũa te tua vì vụ này T_T :
- size nếu khai báo mãng phải là const int, hoặc define hoặc 1 hằng số cụ thể, mãng tĩnh không thể khai báo kiểu run-time.
Nếu khai báo :
Tất cả các phần tử = 0;C Code:
int arr[5] = {};
Khai báo :
Phần tử đầu tiên = 0, tuy nhiên theo mặc định compiler nó set cho tất cả các giá trị còn lại là 0.C Code:
int arr[5] = {0};
Nếu bạn thử :
Khi in ra sẽ thấy chỉ có arr[0] = 5;C Code:
int arr[5] = {5};