Lỗi Chuyển cơ số 10 sang cơ số 2 trong C

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 :sweat_smile:
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 :grin: (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ỉ???

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?