פורסם 2008 בינואר 2617 שנים יש לי את השאלה הבאה: כתוב תוכנית הקולטת שלושה מספרים שלמים מדפיסה את המספרים זה מתחת לזה מהגדול לקטן . בהתחלה כתבתי 3 IF-ELSE אחד בתוך השני ובכל IF בדקתי אם משתנה מסויים הוא הגדול if ((a>b)&&(a>c)) אבל זה לא נכון :\ למשהו יש כיוון? תודה
פורסם 2008 בינואר 2617 שנים מחבר הנה:#include <stdio.h>#include <conio.h>#include <stdlib.h>void main (){ int a,b,c; clrscr (); printf ("enter a:\n"); scanf ("%d",&a); clrscr (); printf ("enter b: \n "); scanf ("%d",&b); clrscr (); printf ("enter c: \n"); scanf ("%d",&c); if ((a>b)&&(a>c)) { printf ("%d \n",a); } if ((b>a)&&(b>c)) { printf ("%d \n",b); } else { if ((c>b)&&(c>a)) { printf ("%d \n",c); } } }}
פורסם 2008 בינואר 2617 שנים קודם כל, הבעיה היא שאתה מדפיס רק את המספר הגדול ביותר, ולא ממשיך להדפיס את שני המספרים האחרים. חוץ מזה, אם שני המספרים הגדולים ביותר שווים, זה גם יעשה בעיות (אבל לזה נתייחס אח"כ). הפתרון הכי straight forward הוא בתוך כל if, להמשיך את הבדיקה - לדוגמה, אחרי הבדיקה a>b&&a>c לבדוק אם b>c ולהדפיס אותם בהתאם. פתרון אחר הוא להחליף בין a,b,c כך ש-a יהיה הגדול ביותר ו-c הקטן ביותר, ואז פשוט להדפיס אותם לפי הסדר. חוץ מזה, לא אמרנו לך כבר לא להשתמש ב-void main?
פורסם 2008 בינואר 2717 שנים מחבר וואלה שכחתי מהקטע של להחליף את המשתנים ולסדר אותם.... הצלחתי הנה התוצאה: #include <stdio.h>#include <conio.h>#include <stdlib.h>int main (){ int a,b,c,d; clrscr (); printf ("enter 3 numbers: \n"); scanf ("%d,%d,%d",&a,&b,&c); clrscr (); if ((b>a)&&(b>c)) { d=a; a=b; b=d; } if ((c>b)&&(c>a)) { d=a; a=c; c=d; } if ((c>b)&&(c<a)) { d=c; c=b; b=d; } printf ("numbers big to small: \n"); printf ("%d \n %d \n %d",a,b,c); getch ();} חוץ מזה, לא אמרנו לך כבר לא להשתמש ב-void main? חחח שמע הייתה תוכנית שכתבתי. והיה לי אירור שהוא לא יכול לתת INT ושהחלפתי לVOID התוכנית עבדה... אז אני כבר לא ידוע מה לכתוב חחח תודה על העזרה.
פורסם 2008 בינואר 2717 שנים חחח שמע הייתה תוכנית שכתבתי. והיה לי אירור שהוא לא יכול לתת INT ושהחלפתי לVOID התוכנית עבדה... אז אני כבר לא ידוע מה לכתוב חחח תודה על העזרה. אולי לא כתבת בסוף return 0;
פורסם 2008 בינואר 2717 שנים מחבר אממ צריך? חח לא אמרתם לי... שאתה אומר בסוף אתה מתכוון אחרי התוכנית עצמה? ולמה יש תוכניות שלא כתבתי את זה והתוכניות עבדו? כאילו מתי צריך לכתוב ומתי לא?
פורסם 2008 בינואר 2717 שנים צריך בסוף פונקצית ה-main.יש קומפיילרים שמאפשרים שלא תכתוב את זה (הם מוסיפים את זה בעצמם).
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.