ערכתי לאחרונה בתאריך 28.11.10 בשעה 19:37 בברכה, VeNom
int max,min; int counter = 0; int i;printf("please min and max: \n"); scanf("%d%d", &min, &max); for(i = min ; i <= max ; i++) { if(i % 3 == 0 && i % 7 == 0) { counter ; printf("divisor: %d\n",i); } } printf("the number of divisors is %d\n",counter);
|
הסבר: קלטים 2 משתנים שלמים..מקס ומינימום שקובעים את הגבולות.
עשיתי לולאה שתלך מהתחתון עד העליון..באמצעות i וכל פעם קידמתי אותו ב 1.
ושאלתי בפשטות את השאלה "האם המספר מתחלק גם ב 3 וב 7 ללא שארית..כלומר האם השארית 0..אם כן הגדלתי את הקאונטר שסופר את מספר המקרים..הדפסתי את המספר..ובסוף הלולאה הדפסתי את כמות המספרים שמתחלקים(הקאונטר)..
הבעיה אצלך היא שאתה בודק איזה מספרים מתחלקים ב 3..במידה והמספר מתחלק ב 3 אתה מדפיס אותו ושואל האם אותו מספר מתחלק גם ב 7..נוצר מצב שחלק מהמספרים יתחלקו רק ב 3 ולא ב 3 וגם ב 7..
אם הגבולה התחתון יהיה 1 והעליון 21..בדיעבד אתה אמור להדפיס רק את 21..אבל אתה תדפיס את כל הכפולות של 3 וגם את 21..