30/09/2018, 21:28

Gặp lỗi trong đoạn code in ra số hoàn thiện nhỏ hơn n

nhập n sau đó in ra số hoàn thiện nhỏ hơn n 27: Một số hoàn thiện là một số có tổng các ước số của nó (không kể nó) ví dụ 6=1+2+3 nhưng em gặp khó khăn chỉ in ra được số 1 dù nhập bất kỳ số mấy

#include <iostream>
using namespace std;
int nhap(int &n)
{
	cout<<"nhập n:";cin>>n;
}
int kt(int n)
{
	int i,s;
	for(i=1;i<n;i++)
	{
		if(n%i==0)
		{
			s=s+i;
			if(s==n)
	  { 
	    return 1;
	  }
	   else
	  {
		   return 0;
	  }
		}
	}
    
	 
}
void in(int n)
{
    int i;
    for(i=1;i<n;i++)
    {
    	if(kt(i)==1)
    	{
    		cout<<i;
		}
	}
}
int main(int argc, char** argv) {
	int n;
	nhập(n);
	in(n);
	return 0;
}
Khôi Trần viết 23:35 ngày 30/09/2018

Cần xem lại cách trình bày code, tiếp đến tìm hiểu cách thức hoạt động của return

Người bí ẩn viết 23:31 ngày 30/09/2018

[quote=“duc_nguyen7, post:1, topic:27993”]
nhập(n);[/quote]

Có vụ này luôn cơ à ?

cout<<"nhập n:";cin>>n;

Không nên ghi chữ có dấu !

			if(s==n)```

Cái này cộng 1 lần rồi xét true false luôn à ?
Dấu ngoặc bạn sắp xếp tùm lum nữa !

Bạn nên học lại kiến thức chứ vầy là không ổn đâu

Bài liên quan
0