Giúp chỉnh code tính tổng các ước của 1 số nguyên dương


Mọi người chỉnh cho e đoạn code này với ạ
nhập n bằng kí tự thì chuyển tới ô enter positive integer ạ
đoạn code:

#include <stdio.h>
#include <stdlib.h>
 int sumDivisors(int n);
void printDivisors(int n)
{
	int i;
	for (i=1; i<=n/2; i++)
	if (n%i==0) printf("%d       ",i);}
int main(int argc, char *argv[]) {
	int n,sum;
	A1:printf("Enter a positive integer: ");
	scanf("%d", &n);
	if (n<=0) goto A1;
    printDivisors(n);		
	printf("\nSum: %d\n", sumDivisors(n));
	getchar();
	getchar();
}
int sumDivisors(int n)
{
	int i, S=0;
 	for (i=1; i<=n/2; i++)
 	 if (n%i==0) S+=i;
 	return S;
}

Hi there,
Tớ có vài câu hỏi cho cậu:

  1. Code trên cậu lấy ở đâu?
  2. Cậu đang gặp vấn đề gì?

Ngoài ra, nhắc nhở nhẹ nhàng cho cậu là DNH không phải diễn đàn giải bài tập hộ đâu cậu :sweat_smile:

3 Likes

mình xin rep theo kiểu chung nhất vì (bạn chưa đưa ra vấn đề trong đoạn code trên)

  • phân tích đề: 2 vấn đề cần giải quyết: tìm các ước của mốt số nguyên dươngtính tống của các số đó in ra.
  • thuật toán: (có phải bạn gặp vấn đề ở đây?)
  • giải quyết: thì nếu bạn cận thận thì viết hai hàm, hoặc không. và phần vụn thì bạn đẩy vào hàm main
  • code: bạn nên làm thử và xem gặp vấn đề ở đâu
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?