void chuyen(){
while(coSo10>=1){
coSo10 = coSo10/2;
soDu[i] = coSo10 % 2;
i++;
}
for(int j=i; j>0; j--){
printf("%d", soDu[i]);
}
}
mọi người cho e hỏi sai ở đâu nhỉ? thanks
void chuyen(){
while(coSo10>=1){
coSo10 = coSo10/2;
soDu[i] = coSo10 % 2;
i++;
}
for(int j=i; j>0; j--){
printf("%d", soDu[i]);
}
}
mọi người cho e hỏi sai ở đâu nhỉ? thanks
không dc bạn ạ. source code full:
#include<stdio.h>
#include<conio.h>
int soDu[100],coSo10,i;
void nhap(){
printf(“nhap co so 10: “);
scanf(”%d”, &coSo10);
}
void chuyen(){
while(coSo10 >=0 ){
soDu[i] = coSo10 % 2;
coSo10 = coSo10/2;
i++;
}
printf("\n");
for(int j=i-1; j>=0; j--){
printf("%d", soDu[i]);
}
}
int main(){
nhap();
chuyen();
getch();
}
Quên, mình nhầm chỗ này, để while (coSo10 > 0)
thôi
Bây giờ, chương trình sẽ compile & run được nhưng kết quả sẽ ra sai, mình sẽ không nói để bạn tự debug nhé !
kq nó vẫn ra 0000…
ok thanks ban…
mình tìm ra lỗi và chạy dc rồi, thanks b
bạn ơi chominhf hỏi là:
for(j=i-1; j>=0; j–){
printf("%d", soDu[j]);
tại sao lại phải chạy từ i-1 đến >=0 mà không pơhair là chạy từ i đến >0 vậy???
Vì đó là thói quen của mình (chỉ số của mảng luôn bắt đầu bằng 0)
nhung nếu bắt đầu từ 1 thì sẽ có kết quả khác là sao vậy nhỉ???