עבור לתוכן

עוד שאלה בC :)

Featured Replies

פורסם

יש לי את השאלה הבאה:

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

מהגדול לקטן .

בהתחלה כתבתי 3 IF-ELSE אחד בתוך השני ובכל IF בדקתי אם משתנה מסויים הוא הגדול

if ((a>b)&&(a>c))

אבל זה לא נכון :\

למשהו יש כיוון?

תודה :)

פורסם

מה זאת אומרת "זה לא נכון"?

תעלה לכאן את הפתרון שלך ונאמר לך איפה לתקן.

פורסם
  • מחבר

הנה:

#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);
}
}
}
}

פורסם

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

חוץ מזה, אם שני המספרים הגדולים ביותר שווים, זה גם יעשה בעיות (אבל לזה נתייחס אח"כ).

הפתרון הכי straight forward הוא בתוך כל if, להמשיך את הבדיקה - לדוגמה, אחרי הבדיקה a>b&&a>c לבדוק אם b>c ולהדפיס אותם בהתאם.

פתרון אחר הוא להחליף בין a,b,c כך ש-a יהיה הגדול ביותר ו-c הקטן ביותר, ואז פשוט להדפיס אותם לפי הסדר.

חוץ מזה, לא אמרנו לך כבר לא להשתמש ב-void main? :)

פורסם
  • מחבר

וואלה שכחתי מהקטע של להחליף את המשתנים ולסדר אותם.... :kopfpatsch:

הצלחתי ^_^

הנה התוצאה:

#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? :)

חחח :lol:

שמע הייתה תוכנית שכתבתי. והיה לי אירור שהוא לא יכול לתת INT ושהחלפתי לVOID התוכנית עבדה...

אז אני כבר לא ידוע מה לכתוב חחח

תודה על העזרה. :)

פורסם

חחח :lol:

שמע הייתה תוכנית שכתבתי. והיה לי אירור שהוא לא יכול לתת INT ושהחלפתי לVOID התוכנית עבדה...

אז אני כבר לא ידוע מה לכתוב חחח

תודה על העזרה. :)

אולי לא כתבת בסוף return 0;

פורסם
  • מחבר

אממ צריך? חח

לא אמרתם לי... :nixweiss:

שאתה אומר בסוף אתה מתכוון אחרי התוכנית עצמה?

ולמה יש תוכניות שלא כתבתי את זה והתוכניות עבדו?

כאילו מתי צריך לכתוב ומתי לא?

פורסם

צריך בסוף פונקצית ה-main.

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

ארכיון

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

דיונים חדשים