עבור לתוכן

צריך עזרה ב-C

Featured Replies

פורסם

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

השאלה היא כזאת..

צריך להכניס מספרים (לא ידוע כמה) ולבסוף הוא מציג את המספר הגבוהה. התוכנית תסתיים כאשר יוכנס המספר 999.

(בכל אופן אני רוצה גם הסבר על ה For בבקשה..)

בתודה מראש..

פורסם

#include<stdio.h>

#include<conio.h>

void main ()

{

int num,max=0;

clrscr();

while(num!=999)

{

printf("Enter num: ");

scanf("%d",&num);

if(num>max && num!=999) max=num;

}

printf("\n\nThe biggest num is: %d",max);

getch();

}

בקשר ל-FOR אז המבנה של לולאת FOR הוא כזה:

for(קידום מונה;תנאי;איזור אתחול);

למשל בדוגמה הבאה:

for(i=0;i<=N;i++)

הלולאה מאתחלת את המשתנה i, היא פועלת כל עוד ה-i קטן או שווה ל-N שיכול להיות גם מספר, וכל לופ של הלולאה היא מעלה את המשתנה i ב-1.

פורסם

#include<stdio.h>

#include<conio.h>

void main ()

{

int num,max=0;

clrscr();

while(num!=999)

{

printf("Enter num: ");

scanf("%d",&num);

if(num>max && num!=999) max=num;

}

printf("\n\nThe biggest num is: %d",max);

getch();

}

הייתי עושה אותו דבר רק את ההדפה והקליטה הראשונים מחוץ לWHILE למקרה שאתה מקבל על ההתחלה 999

ואז להכנס לWHILE ולבדוק....

בעיקרון לולאת WHILE פשוטה שהמספר שנקלט הוא 999 נםסקת וזה מדפיס את המספר הגדול ביותר שנקלט...

איך זה יודע מה המספר הכי גדול?

קולט מספר אם הוא יותר גדול ממה שיש לך כבר הוא הכי גדול וככה הלאה

פורסם
  • מחבר

תודה רבה אחי! עזרת לי מאוד!! ;D ;D

פורסם
  • מחבר

עוד שאלה בבקשה  :)

זה יעזור לי מאוד.

השאלה היא כזאת:

בכיתה י"ב נערך מבחן. בכיתה 32 תלמידים.

כתוב תוכנית אשר תבצע את הפעולות הבאות:

א. תקלוט 32 ציונים של התלמידים לפי סדר השמות ביומן.

ב.תדפיס טבלה בה יצויין המספר הסידורי של התלמיד ביומן ואת הציון.

ג. תחשב את ממוצע הציונים.

ד. תספור כמה תלמידים נכשלו (ציון נכשל שווה 54 ונמוך ממנו.)

דוגמת הטבלה

ציון                מס' סידורי

30                      1

80                      2

48                      3

.                        .

.                        .

76                     32

פורסם

נו טוב, נתרגל קצת C בסיסי:

void main()

{

int i, fcount=0, grades[32];

float avg;

for(i=0;i<32;i++)

{

printf("enter grade num %d",i+1);

scanf("%d",&grades);

}

for(i=0;i<32;i++)

printf("%d %d \n",i+1,grades);

avg=0;

for(i=0;i<32;i++)

avg=avg+grades;

avg=avg/32;

for(i=0;i<32;i++)

if(grades<=54)

fcount++;

printf("average: %f, fail count: %d",avg,fcount);

}

זהו בעקרון.

כתבתי את זה ב10 דקות וממש לא בדקתי.

פורסם

אני לא מבין מה קטע של המורים למדעי המחשב. הם לא שמעו על EOF?!

פורסם
  • מחבר

תודה רבה אנשים! עזרתם לי מאוד!

אני לא מבין מה קטע של המורים למדעי המחשב. הם לא שמעו על EOF?!

מה זה

EOF??

פורסם

תודה רבה אנשים! עזרתם לי מאוד!

מה זה

EOF??

End Of File זה ערך אשר מייצג הגעה לסוף קובץ (הוא גדול מchar בשביל שלא יהיה אפשר לבלבל אותו עם תו רגיל), ואפשר ליצור אותו ע"י CTRL+D או CTRL+Z בחלונות.

פורסם

EOF = -1

הוא מוגדר באחד מקבצי ה-h בתור

#define EOF (-1)

פורסם

הייתי עושה מערך דו מימדי..........

2X32

זה השורה העליונה זה מספר סידורי

שורה תחתונה זה ציון

ואז אתה מדפיס את זה ע"פ הסדר שיש בשורה העליונה...

פורסם

למה אתה צריך מערך שלם למספר הסידורי?!

מערך בנוי מטבעו ממספרים סידוריים.

מן הסתם שהציון הראשון יהיה בתא הראשון במערך וכן הלאה.

פורסם

הייתי עושה מערך דו מימדי..........

2X32

זה השורה העליונה זה מספר סידורי

שורה תחתונה זה ציון

ואז אתה מדפיס את זה ע"פ הסדר שיש בשורה העליונה...

כשאתה פותר שאלה אתה צריך לחשוב עליה במימד נוסף של יעילות........תתאר לך שהיה לך לקלוט 1000000000 ציונים עם מערך דו מימדי

אתה תקצה לזיכרון פי 2 מקום ותוכל לגרום להכשלות התוכנית עקב אי אפשרות להקצות מקום בזכרון.

זה בהחלט לא פתרון יעיל.

פורסם

בדוגמא המס הסידורי הוא לא לפי המספרים הטבעיים

אלה מספרים רנדומלים כאלה

לפי מה שאני הבנתי

פורסם

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

יצא לך לראות עוד המוןןןןןןןןןןןןןן שאלות כאלה

ארכיון

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

דיונים חדשים