Hỏi về đếm số lượng chữ số

c++

(Chou Chou) #1

Chào mọi người ạ, yêu cầu ở đây là đếm số lượng chữ số và code của em là như thế này ạ:

    int Demsoluongchuso(int length){
	   int Sn=0;
	   do{
	 	cout<<"Nhap vao n: ";
	 	cin>>length;
	 	if(length<=0)
	 	  cout<<"\nNhap lai n>o";
	 	 
 }while(length<=0);
	 for(int i=1;i<=length;i*10){
	 	if((length/i)!=0)
		    Sn++;
	      }
              }
		cout<<"Sn= "<<Sn;
	}

ý tưởng của em là lấy số cần tính chia cho 10 và lấy phần nguyên, nếu tồn tại thì Sn tăng lên 1 đơn vị. nhưng khi em chạy thì chỉ chạy đến phần nhập rồi hiển thị như thế này ạ:


Em xem kĩ lắm rồi mà vẫn không biết em sai ở đâu, mong anh chị giúp đỡ, em cảm ơn ạ


(Đặng Huỳnh Anh) #2
  • Bạn để là i * 10 thì vòng lặp sẽ vô hạn, do chưa set i = i * 10 nha.
for(int i=1;i<=length;i*=10){
        if((length/i)!=0)
        Sn++;
    }

(Chou Chou) #3

em cảm ơn anh ạ, em làm được rồi ạ, nhưng mà e thề với a là nãy e có để i*=10 rồi mà k được, a cmt e sửa lại lại được. Em cảm ơn a nhiều ạ.


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