עבור לתוכן

שאלה בשפת C.

Featured Replies

פורסם

היי

אני צריך לכתוב תוכנית שתקלוט 200 מספרים חיוביים , התכנית תדפיס כפלט כמה מהמספרים שנקלטו הם תלת ספרתיים וגם מתחלקים ב-7 ללא שארית.

שתיי שאלות :

1. איך אני קולט רק מספרים חיובים ?

2. איך אני עושה התוכנית תדפיס כפלט כמה מהמספרים שנקלטו הם תלת ספרתיים וגם מתחלקים ב-7 ללא שארית ?

פורסם

1. קלוט מספר מספר (לולאת For של 200 איטרציות) כאשר כל פעם אתה מוודא ש Number>0, במידה ולא תגדיל את המונה של הלולאה ב-1

2. בצע על כל אחד מהם מודולוס שלוש פעמים בכדי לבדוק תלת ספרתיים, בצע מודולוס ב7 בכדי לבדוק חלוקה ב-7

וזה 90% מהעבודה, אני מקווה ותסתדר עם השאר

פורסם
  • מחבר

1. מה זה איטרציות ?

2. מה זה מודולוס ?

פורסם

1. מעבר של לולאה נחשבת לאיטרציה אחת.

2. חשבון שארית. חפש מידע על האופרטור %

פורסם

אני לא זוכר איך לבדוק אם המספר תלת ספרתי אבל כדי לבדוק אם המספר מתחלק ב7 ללא שארית אתה עושה ככה:

if (x%7==0)

פורסם

תעשה log (אולי בבסיס עשר) למספר עם ceil לקבלת ערך עליון שלו.

פורסם

תעשה log (אולי בבסיס עשר) למספר עם ceil לקבלת ערך עליון שלו.

מה? הוא מתחיל בתיכנות , אל תסבך אותו .

אני זוכר משהו בערך תפתחו תרעיון שלי , אז בודקים את המספר בWHILE ושם צריך לחלק אותו עד שמגיעים למס' אחד (הבנתם ? :smile1:)

פורסם

עדיין לא הבנתי איך

int numbers = ceil(log(num)/log(10));

מסבך משהו, אבל נגיד...

פורסם

עדיין לא הבנתי איך

int numbers = ceil(log(num)/log(10));

מסבך משהו, אבל נגיד...

לא הבנת איך זה מסבך ? הוא לא למד את זה ...

פורסם

עדיין לא הבנתי איך

int numbers = ceil(log(num)/log(10));

מסבך משהו, אבל נגיד...

גם אם זה לא מסבך,

למה צריך את החלוקה ב LOG10 ?

פורסם

ברמת המתחיל עדיף שיתמקד במודולוס, אני מאמין שזה גם מה שהתרגיל בא ללמד.

אני מוכן להתערב שהוא לא ממש יידע מה לעשות עם הLog, למרות שזה פתרון מ-א-ד אלגנטי

פורסם

עדיין לא הבנתי איך

int numbers = ceil(log(num)/log(10));

מסבך משהו, אבל נגיד...

לחשב log ב-Floats זה הרבה יותר כבד מאשר לולאת While פשוטה עם חלוקה ב-10, זה מאוד לא יעיל.

בכל מקרה ב-<math.h> יש גם log10.

פורסם
:kopfpatsch:
פורסם

היי

קבל תוכנית:

float number;
int counter = 0;

for(int i=0 ; i< 200 ; i++)
{
do
{
cin>>number;
}while(number < 0); //keep getting number from user until it's positive

if( number % 7 == 0 && //check if number divide by 7 with no reminder
(number >= 100 && number <= 999) ) //check if number has 3 digits
counter = counter +1;
}

מקווה שעזרתי :)

פורסם

cin לא קיים ב C , תשתמש ב scanf או משהו, וזה מזכיר לי שאם אני זוכר נכון יש ל scanf אפשרות לקלוט unsigned int,

נראה לי שזה u% או n%, בכל מקרה אפשר לבדוק את הערך ש scanf תחזיר וככה לדעת אם זה מספר שלילי או לא, לא ניסיתי

את זה אבל יש מצב שגם זה יעבוד, למרות שksg,h זה פחות כאב ראש פשוט לבדוק ש: value < 0 שווה ל 0.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים