בעיה בשאלה בשפת C

בעיה בשאלה בשפת C

שלי שאלה ככה:
יש לקלוט מספר שלם בן 3 ספרות, לוודא שהוא אכן בן 3 ספרות, ולחשב את המנה המתקבלת כשמחלקים את המספר בסכום ספרותיו, ואת השארית המתקבלת.

רוצים שאני אעשה עם IF או swich(בלי FOR וכל זה) ..
איך עושים את זה? אני רוצה את הרעיון הכללי, מה התנאי? אני שובר את הראש ולא מצליח..

זה מה שרוצים שאעשה:
http://www.siz.co.il/my/nwrdxohvmmhq.png

איך אני עושה שכל פעם שרושמים תו ורווח זה ייקלט? מה התנאי של הIF/ swich
 
הצלחתי לעשות את הקוד אבל נתקע..

הקוד שלי:

#include <stdio.h>

void main()
{
int num1;
int sum=0;
if( (num1>=100)&&(num1<=999) )
{
sum=sum+num1%100;
sum=sum+num1%10;
sum=sum+num1;
}
}



הוא אומר לי שהnum1 לא הותחל משהו כזה..
איך לפתור??
 

BravoMan

Active member
אתה בכיוון הנכון, אבל התחלת מהאמצע...

לא קלטת את המספר מהמשתמש.
הקומפיילר מזהיר אותך, שמשתנה num1 מעולם לא קיבל ערך (לא אותחל) ולכן, יש בתוכו מספר אקראי כלשהו שאתה לא יודע מראש מה הוא.

אז, לפני שאתה מחשב את סכום הספרות, תדאג לקלוט מספר.

בנוסף, החישוב שלך לא נכון.
אכן משתמשים ב-% אבל לא כמו שאתה עושה.

אתה מחבר שארית של חלוקה ב-100 (שיכולה להיות גם 99) עם שארית של חלוקה ב-10 (שאכן נותנת את ספרת האחדות), ואז מוסיף את כל המספר במלואו (השתתפות המשתנה בביטוי מתמטי לא משנה אותו אלא אם הוא בצד שמאל של סימן =).
 

פרסאוס

New member
לאתחל אותו תהיה גישה בכיוון הנכון

ורעיון טוב יותר יהיה לאתחל אותו בערך שנקלט מהמשתמש.
מציע לך לחפש את scanf ברשת ולהמשיך משם.
 
למעלה