Em có thắc mắc này mà tìm mãi chả biết hỏi ở đâu , đành vào đây hỏi tạm vậy ( có gì xin mod ở đây nhẹ tay ) Em đang học cách sử dụng hexedit , nhưng em không biết làm thế nào để có thể chèn thêm một số byte vào chỗ này và bớt đi một số byte tương ứng ở một vị trí khác Có ai thông thạo cách sử dụng hexedit hay hexworkshop xem thử hộ em với Ví dụ như ở dưới đây : em muốn tìm cách làm sao để chuyển dòng bôi đen kia thành " 80 09 01 00 00 00 FF D3 03 96 F6 FF FF 00 FE DE C6 03 " , đồng thời bỏ bớt đi 6 byte ở một vị trí khác ( để giữ nguyên dung lượng file ) Nếu chương trình hexedit này ko có khả năng làm được như vậy thì có ai làm ơn cho em xin 1 chương trình có công dụng tương tự và có khả năng tùy chỉnh như trên với :) . Em cảm ơn trước :) P/s : Em đã đính kèm theo trình hex em đang sử dụng . Nếu bài này post nhầm chỗ thì xin mod move hộ em sang đâu đấy cũng được
sài winhex đi dễ dùng hơn, hồi trước crack mình cũng sài winhex nè. Ngoài ra khi thao tác với hex thì phài đảm bảo dùng lượng của file thêm bao nhiêu thì phải bớt bấy nhiều, nếu muốn thêm mà ko bớt thì kiếm chỗ nào trống toàn số 00000 mà add vào rùi dùng ngắt chuyển hướng lên hoặc xuống
cho em hỏi xí về lệnh for: Mã: #include <stdio.h> #include <conio.h> main() { int t,j; int a[100],n,i; printf ("nhap vao n (voi n la so phan tu trong mang )"); scanf ("%d",&n); for (i=0;i<n;i++) { printf ("nhap vao gia tri cua a[%d]",i); scanf ("%d",&a[i]); } [COLOR="Red"]for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)[/COLOR] if (a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } for (i=0;i<n;i++) printf("%5d",a[i]); getch ( ); } ở phần bôi đỏ đó là 2 cái lệnh for theo lí thuyết thì sau khi kiểm tra điều kiện của biểu thức 2 của lệnh for thứ nhất nếu đúng nó sẽ thực hiện lệnh sau for đó nhưng sau cái for thứ nhất lại còn 1 cái for thứ 2 vậy lúc này nó sẽ xét tiếp cái for thứ 2 rồi mới thực hiện lệnh if đằng sau 2 cái for đó hay sao ạh ? Nghĩa là for 1 , for 2 xong if Hay for 1 tới if,tiếp theo là for 2 xong tới if. Hay là trường hợp khác ạh. Hình như hơi rối thì phải ::(
chả có gì là rối cả, tại bạn học không kỹ đó thôi -cái for thứ nhất nếu đúng điều kiện sẽ làm cái for thứ 2, cái for thứ 2 mà đúng điều kiện thì sẽ làm tiếp đến hết vòng for sẽ nhảy lên lại vòng for thứ 1 làm tiếp đến khi for thứ 1 sai điều kiện hay hết for -nếu for thứ nhất sai điều kiện thì coi như for thứ 2 không làm, mà if cũng nằm trong for thứ 2 --> if cũng không làm thực ra đúng thì nên viết như vậy: Mã: #include <stdio.h> #include <conio.h> main() { int t,j; int a[100],n,i; printf ("nhap vao n (voi n la so phan tu trong mang )"); scanf ("%d",&n); for (i=0;i<n;i++) { printf ("nhap vao gia tri cua a[%d]",i); scanf ("%d",&a[i]); } [COLOR="Red"]for(i=0;i<n-1;i++) for(j=i+1;j<n;j++)[/COLOR] if (a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } for (i=0;i<n;i++) printf("%5d",a[i]); getch ( ); }
Hiện tớ muốn tìm hiểu về lập trình web mà tớ thì lại không biết bắt đầu từ đâu cả, ai đó có thể hướng dẫn những khái niệm căn bản về lập trình web được không?
hic Sao trong topic này ít người hỏi quá hỉ Em lại hỏi nữa ::(. Đề là nhập và xuất mảng bằng hàm : em làm đây : Mã: #include <stdio.h> #include <conio.h> void nhap(int a[300],int n); void xuat(int a[300],int n); main() { int n; printf ("nhap vao n voi n la so phan tu trong mang :"); scanf ("%d",&n); } void nhap(int a[300],int n) { int i; for (i=0;i<n;i++) { printf ("nhap vao gia tri cua a[%d]",i); scanf ("%d",&a[i]); } } void xuat(int a[300],int n) { int i; for (i=0;i<n;i++) { printf ("%d",a[i]); } } Ko biết sai chỗ nào mà khi em chạy,lúc "hay nhap vao n voi n la so phan tu trong mang".Em ấn 1 số bất kì thì nó thoát chương trình,ai chỉ em sửa hen Chắc xong câu này tìm chỗ khác cho nó rôm rả chứ cứ làm phiền mấy anh hoài..........................
viết 2 cái hàm mà không gọi nó trong hàm main() thì nó kết thúc đúng rồi còn g2i nữa: Mã: main() { int n,a[300]; printf ("nhap vao n voi n la so phan tu trong mang :"); scanf ("%d",&n); nhap(a,n); xuat(a,n); }
Có phải ct chạy thì nó chạy những cái trong hàm main() không? Nếu đúng vậy thì nó chạy đúng mà... Hàm main() chì đến đó thôi @@. p/s: ngôn ngữ trên là ngôn ngữ gì hỉ? :p
tại cái tiết về hàm em trốn học mất tiu mà em thêm 2 cái Mã: nhap(a,n); xuat(a,n); rồi ,bi giờ thì ko chạy đc lun em xài Bloodshed-Dev đó
cho em bổ sung chút : tại anh DHBL nói pải gọi hàm nó mới thực thi chương trình đó em thấy cái chương trình sau ở hàm main đâu có cái nào tựa tựa như là gọi hàm đâu mà nó vẫn chạy ngon lành mà Mã: #include <stdio.h> #include <conio.h> float max3s (float a,float b,float c); main() { float x,y,z; int o; tt : printf ("nhap vao 3 so :"); scanf ("%f%f%f",&x,&y,&z); printf ("\nso lon nhat la %f",max3s(x,y,z)); printf ("\nco tip tuc ko c-k"); if (o=='c') goto tt; else getch(); } float max3s (float a,float b,float c) { float max; max=a; if (max<b) max=b; if (max<c) max=c; return(max); }
viết gì mà dính nguyên một cục thế hỏi chi nhìn ko ra là phải... viết tách ra vậy dễ nhìn hơn nè Mã: #include <stdio.h> #include <conio.h> float max3s (float a,float b,float c); main() { float x,y,z; int o; tt : printf ("nhap vao 3 so :"); scanf ("%f%f%f",&x,&y,&z); printf ("\nso lon nhat la %f",max3s(x,y,z)); printf ("\nco tip tuc ko c-k"); if (o=='c') goto tt; else getch(); } float max3s (float a,float b,float c) { float max; max=a; if (max<b) max=b; if (max<c) max=c; return(max); } max3s(x,y,z) --> cái này ko phải gọi hàm thì là gì.: gọi hàm max3s truyền vào 3 tham số là x,y,z...... hàm con này Mã: float max3s (float a,float b,float c) { float max; max=a; if (max<b) max=b; if (max<c) max=c; return(max); } viết dính lẹo nên tưởng cái float nằm trong main chứ gì....
hix nói người ta viết 1 cục mà xem ra viết lại cũng có khá hơn gì đâu.trích lại nguyên văn: float max3s (float a,float b,float c); main() { float x,y,z; int o; tt : printf ("nhap vao 3 so :"); scanf ("%f%f%f",&x,&y,&z); printf ("\nso lon nhat la %f",max3s(x,y,z)); printf ("\nco tip tuc ko c-k"); if (o=='c') goto tt; else getch(); } ở hàm main khi viết tắt nhập 1 lượt 3 biến và đọc 3 biến đó 1 lượt thì chuơng trình nó rối lắm có khi nó chạy dc lại có khi ko, lại có khi cho ra ko đúng như kết quả(lúc trước tôi làm nhiều bài nên gặp nhiều trường hợp như vậy). Bởi vậy khi nhập bất kì 1 biến nào đó nên nhập tuần tự đừng có làm biếng. Đây là những điều cơ bản để hạn chế các Bug khi biên dịch đấy
anh viết cũng 1 cục như em mà ::(. Nhưng ở hàm float khai đối a,b,c mà nhỉ tại sao khi gọi hàm lại thành x,y,z Như vậy liệu máy có hỉu ko ... ?
a,b,c là biến cục bộ đối với hàm max3s. Chỉ có tác dụng trong hàm max3s. Đoạn này: Mã: float max3s(float a,float b, float c) , nên hiểu là khi gọi hàm max3s thì truyển vào 3 số kiểu float để hàm tính toán thôi. x,y,x là biến toàn cục trong hàm main, khi gọi hàm max3s trong hàm main và truyền 3 tham số x,y,z, thì nên hiểu là truyền vào hàm max3s 3 số float thôi. p/s: tên hàm là max3s, kiểu trả về là float, chử không phải hàm float nhé (chỗ bôi đỏ đó)!
Nhưng khi tính toán và cho ra số lớn nhất ở hàm max3s với 3 đối a,b,c.Giả sử số lớn nhất là a và giá trị của nó là 10,thì làm sao máy biết đc a tương ứng với x để mà khi xuất ra màn hình sẽ là "so lon nhat la %f,max3s(x,y,z) "chứ . Nghĩa là máy chỉ biết số lớn nhất trong 3 số a,b,c chứ đâu có biết số lớn nhất trong 3 số x,y,z ? Chỗ này em nghĩ hay là máy sẽ hỉu theo thứ tự a,b,c.x,y,z : a=x b=y c=z Nếu ko pải thì giải thích giúp em hen.
Chính xác!!! Đúng là máy nó hiểu như thế. nếu truyền theo thứ tự khác như: Mã: max3s(y,z,x) thì sẽ tương đương như: Mã: a=y; b=z; c=x;
1> 3 số a,b,c máy nó đâu biết số nào lớn, nó đâu có thống minh như ta nhìn vào là biết, ta phải viết code hướng dẫn nó làm. 2> khi ta gọi hàm và truyền đối số cho nó thì thì mỗi đối số sẽ được tạo 1 bản sao riêng tức là copy nó qua 1 vùng nhớ khác tách biệt với vùng nhớ của đối vừa tạo vd: a=10 truyền vào max3s(x,y,z) thì nó sẽ tạo 1 biến mới x và copy cái giá trị 10 nên x=10. Và khi kết thúc cái hàm thì biến này được thu hồi và trả lại cho hệ thống, không ảnh hướng dính liếu gì tới biến a cả. Còn x,y,z chỉ là tên biến kí hiệu đề ta quản lý mà thôi, nếu buồn buồn viết luôn địa chỉ bộ nhớ cũng chạy được học lập trình nhúng thì sẽ rõ hơn vấn đề này. 3> Ngoài ra còn 2 loại nữa là truyền địa chỉ vùng nhớ của biến vào hàm, truyền địa chỉ của hàm khác vào 1 hàm( con trỏ hàm).