- Thứ nhất là báo lỗi ở typedef struct ......... vì dùng mà ko đặt cho nó một cái tên mới
- Thứ 2: da với db trong hàm main là cái gì ? nó báo lỗi là chưa khai báo nó mà đã dùng
Đoạn code sau bị lỗi không đọc được biến, dù đã đặt ở public. Mọi người giải thích cho mình sao lại thế! Cảm ơn nhiều:
C++ Code:
#include<iostream.h> typedef struct dathuc { int bac; float *a; }; dathuc dc; dathuc da,db; class HS { private: public: void nhapham(dathuc dt); void congdathuc(dathuc,dathuc); }; int main() { HS ob; ob.nhapham(da); ob.nhapham(db); ob.congdathuc(da,db); return 0; } void HS::nhapham(dathuc dt) { do{ }while(dt.bac==0); dt.a = new float[dt.bac]; for(int i=0;i<dt.bac;i++) { } for(int i=0;i<dt.bac-1;i++) { if(*(dt.a+i)!=1) { { } } if(*(dt.a+dt.bac-1)!=1) { else { } int check = 0; for(int i=0;i<dt.bac;i++) if (*(dt.a+i)!=0) { check=1; break; } } void HS::congdathuc(dathuc da,dathuc db) { if(da.bac>db.bac) { dc.a = new float[da.bac]; for(int i=0;i<db.bac;i++) *(dc.a+i) = *(da.a) + *(db.a); for(int j=db.bac-1;j<da.bac;j++) *(dc.a+j) = *(da.a+j); } else { dc.a = new float[db.bac]; for(int i=0;i<da.bac;i++) *(dc.a+i) = *(da.a) + *(db.a); for(int j=da.bac-1;j<db.bac;j++) *(dc.a+j) = *(db.a+j); } }
Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!
- Thứ nhất là báo lỗi ở typedef struct ......... vì dùng mà ko đặt cho nó một cái tên mới
- Thứ 2: da với db trong hàm main là cái gì ? nó báo lỗi là chưa khai báo nó mà đã dùng
Bản thử sửa lại hàm nhập
Sử dụng tham chiếu hoặc con trỏC++ Code:
void nhapham(dathuc dt);
C++ Code:
void nhapham(dathuc &dt);C++ Code:
void nhapham(dathuc* dt);
Mua hosting tăng Website hoặc Tên miền - Tuyển cộng tác viên: % hoa hồng từ 5%-10%
-------------------------------------------------------
Hotline: 0944397399 (Mr.Sơn) - Website: thienma.net
Yahoo: thienma_sale - thienma.sale
Mình dùng con trỏ chưa được quen tay lắm. Code chạy được nhưng lỗi runtime:
Nhap bac cua da thuc:2
Nhap cac he so cua da thuc:a[1] = 1
a[2] = 2
Ban da nhap da thuc:
f(x) = x^1 + 2x^2
Nhap bac cua da thuc:3
Nhap cac he so cua da thuc:a[1] = 1
a[2] = 2
a[3] = 3
Ban da nhap da thuc:
f(x) = x^1 + 2x^2 + 3x^3
Ket qua:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Press any key to continue . . .
C++ Code:
#include<iostream.h> typedef struct dathuc { int bac; float *a; }; class HS { private: public: void nhapham(dathuc dt); void congdathuc(dathuc da,dathuc db); }; int main() { HS ob; dathuc da,db; ob.nhapham(da); ob.nhapham(db); ob.congdathuc(da,db); return 0; } void HS::nhapham(dathuc dt) { do{ }while(dt.bac==0); dt.a = new float[dt.bac]; for(int i=0;i<dt.bac;i++) { } for(int i=0;i<dt.bac-1;i++) { if(*(dt.a+i)!=1) { { } } if(*(dt.a+dt.bac-1)!=1) { else { } int check = 0; for(int i=0;i<dt.bac;i++) if (*(dt.a+i)!=0) { check=1; break; } } void HS::congdathuc(dathuc da,dathuc db) { dathuc dc; if(da.bac>db.bac) { dc.a = new float[da.bac]; for(int i=0;i<db.bac;i++) *(dc.a+i) = *(da.a) + *(db.a); for(int j=db.bac-1;j<da.bac;j++) *(dc.a+j) = *(da.a+j); } else { dc.a = new float[db.bac]; for(int i=0;i<da.bac;i++) *(dc.a+i) = *(da.a) + *(db.a); for(int j=da.bac-1;j<db.bac;j++) *(dc.a+j) = *(db.a+j); } }
Cái thuở còn đánh con bé hàng xóm chỉ vì nó không xách cặp hộ đi học. Cái thuở thèm làm người lớn, để bố mẹ khỏi đánh đòn đau mỗi khi mắc lỗi, để được “con nít” gọi mình là người lớn. Cái thuở con nít. Cái thuở ấy xa thật xa. Cô bé hàng xóm đi lấy chồng. Tôi không còn con nít. Và đôi lúc cái thằng người lớn như đã ước mơ một thời, giờ…Vâng…Rất lạ..Có khi nó muốn làm con nít!
Bạn nên xem lại tư duy hướng đối tượng cho bài này.
Class của bạn nên có member kiểu đa thức.
Cái lỗi kia thì tôi chưa biết tại sao.
theo mình là chưa cấp phát bộ nhớ ở để dùng struct, sao không để cụm này vào class luôn.
Trong method congdathuc, có new rồi mà.