30/09/2018, 21:01
Trong đoạn code sau mắc lỗi gì không in ra được kết quả
đề in ra số hoàn hảo từ 1 đến 100 code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int i,j,sum=0;
int check;
for(i=1;i<100;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum=sum+i;
if(sum==i)
{
check=1;
}
else
{
check=0;
}
}
}
if(check==1)
{
printf("%i",i);
}
}
return 0;
}
Bài liên quan
Chỗ này bạn sửa lại
sum=sum+j;
Ngoài ra, do biến
sum
của bạn là global với 2 vòng for, nên nó vẫn lưu gía trịsum
của cáci
trước, bạn phải resetsum
lại 0 cho mỗii
, nên chỗ 2 vòng for sửa lại là:cám ơn bài làm hoài mà không cho mình xin facebook làm quen nha:slight_smile:
Ý của bạn là in ra màn hình từ số 1 đến số 100 hả. Vậy thì đây là chương trình của mình. Bạn tham khảo nha:
Mình hơi bận nên không thể coi kỹ đoạn code của bạn được. Sorry nha!
https://www.facebook.com/unsilverbullet Rất vui được làm quen bạn
Ý bạn ở trên là in ra các số hoàn hảo trong khoảng 1->100 mà bạn
Vậy thì đây.
Ở đây bạn nên để biến check theo kiểu dữ liệu bool và khai báo false và nên đặt trong for.
Còn vài bất cập nữa mà không biết nói sao.
Chứ bài của bạn kèm theo cách sửa của bạn freedom thì nó VS hiện kết quả là 628. (còn có cả nữa)
Mình check bài mình bằng VS rùi nên chắc đúng.
yêu cầu gì thì làm cái đó , mình thấy bạn thêm biến check chi cho mất công
bạn tập cách trình bày code sao cho dể đọc đi, để {} lộn xộn vậy ai dám debug cho bạn
cám ơn bạn đã góp ý kiến