עבור לתוכן

צריך עזרה בשפת C

Featured Replies

פורסם

שלום,

קיבלנו משימה לכתוב תכנית אשר צריכה לחשב כמה אוטובוסים יש להזמין בהנחה שיש X תלמידים ובכל אוטובוס נכנסים 50 תלמידים.

הבעיה היא שאסור לנו להשתמש בMOD/DIV ובהוראות תנאי (IFים ולולאות...) ככה שבסופו של דבר הפתרון צריך להיות מבוסס כמעט כולו על מתמטיקה.

למישהו יש רעיון איך לפתור את זה?

תודה!

פורסם

אי אפשר. אתה בטוח שאתה לא יכול להשתמש בכל אלה?

פורסם
  • מחבר

בטוח.

המורה שלנו היא גם מורה למתמטיקה...

היא החליטה לנסות אותנו...

היא אומרת שאפשר גם בלי כל אלה.

פורסם

B=מס האוטובוסים

ciel((float)x/50=B)

כפי שאתה רואה, חייבים להשתמש בחילוק(או בהרבה לולאות במקום חילוק).

אני אחשוב על זה, למרות שאני לא חושב שיש דרך לפתרון.

פורסם
  • מחבר

כנראה שלא הבהרתי את עצמי מספיק טוב...

בכל הפעולות חשבון הבסיסיות (חיבור,חיסור,כפל,חילוק,חזקה,שורש,הוצאת שארית) אפשר להשתמש... אסור במה שמעבר לזה...

מישהו הציע לי לפרק את 50 לחזקות של 2(2,16,32) יש לך רעיון שמבוסס על זה?

פורסם

B=מס האוטובוסים

ciel((float)x/50=B)

כפי שאתה רואה, חייבים להשתמש בחילוק(או בהרבה לולאות במקום חילוק).

אני אחשוב על זה, למרות שאני לא חושב שיש דרך לפתרון.

הפיתרון שהוא נת נכון

תקבע משתנה למיפסר האוטובוסים ותחלק אתה מיספר התלמידים (X) ב 50 ככה שתקבל את מיספר האוטובוסים, ובמידה יש נקודה עשרונית (שארית) תעשה B++.

פורסם
  • מחבר

את הפתרון הזה גם אני מכיר

הבעיה היא שהיא רוצה שנעשה את זה רק עם פעולות חשבוניות בסיסיות... :(

פורסם

פתרון קצת מטורף

אפשר לעשות הרבה הפחתות (של מספר התלמידים ב - 50) ברקורסיה עד שבסוף נגיע לאפס ואז נחלק במספר זה והתוכנה תתרסק.

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

פורסם

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

פורסם

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

ההבדל הוא שבסופו של דבר הפתרון שלי נותן את המספר הנכון (לפני שהוא מתרסק) ושלך לא :P.

פורסם

הינה הקוד של התוכנית לפי מה שביקשתה :

#include <stdio.h>

void main()

{

int bus_seats=50;

int students;

float number_of_buses;

printf("enter the numbers of students \n");

scanf("%d",&students);

number_of_buses=students/bus_seats;

number_of_buses++;

printf("the number of buses is %f \n",number_of_buses);


}

פורסם
  • מחבר

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

פורסם

וואלה צודק שכחתי מזה

פורסם

כשתדע תכתוב לנו פה את הפתרון. זה פשוט נשמע לא כל כך הגיוני (אלא אם כן משתמשים בפתרונות מאוד מוזרים, כמו שהצעתי ;D).

פורסם

את הפתרון הזה גם אני מכיר

הבעיה היא שהיא רוצה שנעשה את זה רק עם פעולות חשבוניות בסיסיות... :(

אסור להשתמש ב-CEIL?

מותר hardlim??

אני לא יודע אם מותר לכם אבל אפשר ככה(סלחו לי על הסינטקס):

int kids;
float kidsdiv;
scanf("%d",&kids);
kidsdiv = kids/50;
kids = kidsdiv+0.98;
printf("%d",kids);

ארכיון

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

דיונים חדשים