Vì sao code không chạy các vòng for tiếp theo và hiển thị kết quả?

Em làm một chương trình mà nhập biến n ở dạng số decimal và chương trình sẽ phải chạy và hiện ra cả 3 số binary, octal, hexadecimal (chuyển đổi cơ số ) của số n mà em nhập vào.

Mà em không hiểu tại sao số mà em nhập vào, nó chỉ hiện ra kết quả chuyển đổi sang binary của nó, chứ không hiển thị octal,hexadecimal. Kiểu như nó bị chết đứng dừng chân tại chỗ binary, còn các vòng for tiếp theo - cái mà hiển thị octal,hexadecimal thì nó nhất quyết không thực thi và bỏ qua mặc kệ.

Mong mọi người giúp em với, em loay hoay cả ngày rồi vẫn không hiểu tại sao :frowning:

#include <stdio.h>

int main(){
	int a[100],b[100],c[100],n,i;     
    printf("Enter the number to convert: ");    
    scanf("%d",&n);    
//-------------------------------------------------------------------------Binary
    for(i=0;n>0;i++){    
	    a[i]=n%2;    
		n=n/2;    		
}
    printf ("\nBinary number: ");
    for(i=i-1;i>=0;i--){    
	    printf("%d",a[i]);  
}
    printf ("\n");
//----------------------------------------------------------Octal
     for(i=0;n>0;i++){    
	    b[i]=n%8;    
		n=n/8;    
}
    printf ("Octal number: ");
    for(i=i-1;i>=0;i--){    
	    printf(" %d\n",b[i]);
	}
	printf ("\n");
//--------------------------------------------------------------------------------------Hex
     for(i=0;n>0;i++){    
	    c[i]=n%16;    
		n=n/16;    
}
     printf ("Hexadecimal number: ")  ;      
	for(i=i-1;i>=0;i--){    

		printf ("%d",c[i]) ;
}       
    

return 0;  
}    ```

Bạn thử tự debug từng dòng một xem sao. Chú ý giá trị của biến n

2 Likes

vì bạn lười
đặt thêm mấy dòng print/cout có khó không?
đặt ở bất kì chỗ nào bị sai

printf ("\nBinary number: ");

code đã chạy tới đây, thì sao không in thử biến n ở đó xem, sao không in thử trong vòng for kế tiếp xem?

4 Likes

Sau hết cái vòng chạy binary là n=0. Và bạn quên chưa set lại giá trị n, nên những dòng for sau, điều kiện là n>0 nên nó không thoả. nên không chạy được.

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