צריך עזרה בשפת C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


idoleff

Recommended Posts

שלום,

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

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

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

תודה!

קישור לתוכן
שתף באתרים אחרים

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

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

מישהו הציע לי לפרק את 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);


}

קישור לתוכן
שתף באתרים אחרים

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

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

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

מותר hardlim??

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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...