שלום אורח,
השעה עכשיו היא 06/04/20 12:02


 חדשות: נפתח פורום גאדג'טס בו ניתן לדון במחשבי כף יד, מצלמות דיגיטליות, נגנים ניידים, טלפונים סלולאריים כל מה שחדש ומגניב



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

עבור לפורום:  
      צפה בנושא הקודם - צפה בכל ההודעות - צפה בנושא הבא   הגב לנושא  
מאת הודעה
alaa_137
Tech Newbie
Tech Newbie
הודעות: 5


 

צפה בפרופיל המשתמש שלח הודעה פרטית
נושא: שאלה בשפת C
« פורסם ב-06/08/11 13:26 »
דווח לאחראי הפורום הגב עם ציטוט

שלום לכולם
אפשר בבקשה עזרה עם השאלה הזאת?



התוכנית שלי:

קוד:
#include <stdio.h>
int main ()
{
int r,max,c=0;
int fmax=0;
int n;

while (1)
{
    r=scanf("%d",&n);
    if (r==EOF) break;
    else
    {max = fmax == 0 ? n : (n>max ? n : max);
    }
   
    fmax=1;
}
printf("The max is %d. It appeards %d times" , max,c);
return 0;
}


מציאת המספר המקסימאלי עובד אצלי סבבה אבל אני לא יודע איפה לשים את פעולת הספירה...
ואם בשאלה מבקשים לקלוט גם מספרים עשרוניים, אז איך אני עושה את זה מבלי לחרוג מהערה 6?


תודה רבה!



alaa_137
Tech Newbie
Tech Newbie
הודעות: 5


 

צפה בפרופיל המשתמש שלח הודעה פרטית
נושא: Re:שאלה בשפת C
« פורסם ב-06/08/11 13:53 »
דווח לאחראי הפורום הגב עם ציטוט

בניתי עוד תוכנית בשיטה קצת שונה:
קוד:
#include <stdio.h>
int main ()
{
int r,c=1;
int fmax=0;
double n,max;

while (1)
{
    r=scanf("%lf",&n);
    if (r==EOF) break;
    else
    {
     if (n==max)
     ++c;
     if ((fmax==0) || (n>max))
            {
                max=n;
                c=1;
            }
    }
    fmax=1;
}
printf("The max is %lf. It appeards %d times" , max,c);
return 0;
}


יש פה 2 בעיות:
1) השתמשתי בטיפוס DOUBLE
2) אם בהתחלה קולטים מספר דומה ל-MAX אז תהיה שגיאה כמובן...

תגובות?

Comnir
Tech God
Tech God
הודעות: 2936
גיל:32
מין:מין:זכר

 

צפה בפרופיל המשתמש שלח הודעה פרטית
מפרט מחשב
נושא: Re:שאלה בשפת C
« פורסם ב-06/08/11 22:19 »
דווח לאחראי הפורום הגב עם ציטוט

עד כמה שידוע לי, ערך ההחזרה של scanf הוא מספר השדות שנקראו בהצלחה והוא לא מקבל EOF. חוץ מזה, הבסיס שנתת נראה טוב, אבל כנראה שיש צורך בשינוי. אגב, כיוון שמציינים בתרגיל שיש להשתמש רק ב-char ו-int, זהו רמז לכך שצריך להכניס תווים לתמונה icon_wink.gif

בכל אופן, במקרה שלך אני חושב שעדיף לקרוא את הקלט כתווים (char), תו אחד בכל פעם. כל מספר נשמר בשני משתנים שלמים - שלם ועשרוני - כאשר ההבדלה בין המספרים שהתקבלו בקלט נעשית לפי תווי הרווח האפשריים. בשביל להעביר את המספר למשתנה שלם, בכל פעם צריך להכפיל את המספר השמור ב-10 ולהוסיף לו את התו הבא שאנו קוראים.

לדוגמא, עם הקלט 12:
קוראים את התו '1', ממירים למספר ושומרים.
קוראים את התו '2', ממירים למספר, מכפילים את המספר השמור שלנו - 10 ומוסיפים 2.

_______________________________________________
It's K, We can talk about it later...

- A similar game ^^, but better icon_smile.gif

alaa_137
Tech Newbie
Tech Newbie
הודעות: 5


 

צפה בפרופיל המשתמש שלח הודעה פרטית
נושא: Re:שאלה בשפת C
« פורסם ב-07/08/11 00:09 »
דווח לאחראי הפורום הגב עם ציטוט

בקשר ל-r=scanf זה בסדר הוא כן מקבל EOF.
בקשר לשאר סבבה הבנתי אותך תודה רבה אני ינסה ואעדכן פה icon_smile.gif

alaa_137
Tech Newbie
Tech Newbie
הודעות: 5


 

צפה בפרופיל המשתמש שלח הודעה פרטית
נושא: Re:שאלה בשפת C
« פורסם ב-07/08/11 11:31 »
דווח לאחראי הפורום הגב עם ציטוט

ציטוט של Comnir:
לקרוא את הקלט כתווים (char), תו אחד בכל פעם. כל מספר נשמר בשני משתנים שלמים - שלם ועשרוני - כאשר ההבדלה בין המספרים שהתקבלו בקלט נעשית לפי תווי הרווח האפשריים.


אתה יכול להסביר איך להמיר את ה-CHAR שאני קולט ל-INT?

Comnir
Tech God
Tech God
הודעות: 2936
גיל:32
מין:מין:זכר

 

צפה בפרופיל המשתמש שלח הודעה פרטית
מפרט מחשב
נושא: Re:שאלה בשפת C
« פורסם ב-07/08/11 18:02 »
דווח לאחראי הפורום הגב עם ציטוט

קוד:
int numInterger=0,numAfterPoint=0;


נניח שהגעת לתו אחרי רווח, אז התו הזה הוא הראשון במספר שהגעת אליו. שמור אותו בתוך משתנה numInteger.
קלוט את התו הבא ושמור במשתנה temp. אם הוא לא נקודה, אז כפול את numInteger ב-10 והוסף ל-numInteger את temp. אחרי שהגעת לנקודה, את שאר המספרים שמור ב-numAfterPoint.

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

_______________________________________________
It's K, We can talk about it later...

- A similar game ^^, but better icon_smile.gif

rrrttt
Tech Newbie
Tech Newbie
הודעות: 1


 

צפה בפרופיל המשתמש שלח הודעה פרטית
נושא: Re: שאלה בשפת C
« פורסם ב-13/12/11 16:18 »
דווח לאחראי הפורום הגב עם ציטוט

מי יכול לעזור לי בבקשה לענות על השאלה:
קלוט מס ממשי והצג את הספרות לאחר הנקודה בשפת C#?

הצג הודעות מלפני:   
הגב לנושא  



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

עבור לפורום:  

תקנון הפורום    שאלות ותשובות

Powered by phpBB © 2001, 2005 phpBB Group



כל הזכויות שמורות ל-Techno.co.il © 2002. אין להעתיק, לשכפל או להפיץ תכנים מאתר זה ללא רשות מפורשת בכתב ממנהל האתר