פורסם 2007 באוקטובר 118 שנים היי חבר'ה אני די חדש ב C ואני ישמח אם תעזרו לי במשהוכתוב פונקציה הקולטת שני זמנים ומוצאת את ההפרש בינהםעכשיו אני לא כזה מבין בפונקציות ואת ה syntax שאני צריך לעשות#include <stdio.h>#include <conio.h>#include <math.h>int clock(int hour,int hour1,int min,int min1,int sec,int sec1,int totalseconds,int totalseconds1,int temp) {totalseconds=(hour*60+min)*60+sec;totalseconds1=(hour1*60+min1)*60+sec1;temp=abs(totalseconds1-totalseconds);return temp;}void main(){int hour,hour1,min,min1,sec,sec1,temp;printf("enter hour,min and sec");scanf("%d %d %d",&hour,&hour1,&min,&min1,&sec,&sec1); clock(hour,hour1,min,min1,sec,sec1); printf("%d %d %d %d %d %d, ????)}יש לי כמה שאלות*אני יכול להשתמש באותם משתנים גם בפוקנציה וגם בראשית?*כל הקטע הזה בכלל נכון?איך אני קורא לפונקציה כומ שצריך?*תשילמו לי בסימני שאלה מה צריך לכתוב
פורסם 2007 באוקטובר 118 שנים לא נכנסתי יותר מידיי לתוכנית שלך, לדעתי התיקונים (לפי הגיוני):#include <stdio.h>#include <conio.h>#include <math.h>int clock(int hour,int hour1,int min,int min1,int sec,int sec1){ int temp,totalseconds,totalseconds1; totalseconds=(hour*60+min)*60+sec; totalseconds1=(hour1*60+min1)*60+sec1; temp=abs(totalseconds1-totalseconds); return temp;}void main(){ int hour,hour1,min,min1,sec,sec1,temp; printf("enter hour,min and sec"); scanf("%d%d%d%d%d%d",&hour,&hour1,&min,&min1,&sec,&sec1); temp=clock(hour,hour1,min,min1,sec,sec1); printf("%d",temp);}
פורסם 2007 באוקטובר 118 שנים אתה יכול להשתמש באותם שמות משתנים, אבל תצטרך להצהיר עליהם בכל פונקציה (כלומר אם הצהרת על משתנה ב-main, הוא לא יהיה נגיש מתוך clock אלא אם העברת אותו כפרמטר).אתה לא צריך להעביר את totalseconds,totalseconds1,temp מה-main לפונקציה, אתה יכול פשוט להצהיר עליהם בתוך הפונקציה (כמו שהצהרת על המשתנים ב-main).ה-scanf שלך קולט רק 3 פרמטרים, כשהוא אמור לקלוט שישה (צריך 6 פעמים d%).את התוצאה של clock אתה צריך לשמור במשתנה כלשהו. נניח, תצהיר ב-main על משתנה בשם result (מטיפוס int) ותקרא לפונקציה ככה:result = clock(hour,hour1,min,min1,sec,sec1);שים לב ש-result מחזיק עכשיו את ההפרש בין הזמנים בשניות. אתה יכול להדפיס את המספר הזה ישירות (ואז תצטרך רק d% אחד ב-printf), או לחילופין לחשב ממנו את מספר השעות והדקות באמצעות פעולות חילוק ומודולו (אני לא ממליץ לך לעשות זאת אם עדיין לא למדת את זה).עוד משהו קטן - main צריכה להחזיר int ולא void, ובסופה תוסיף את השורה הזו:return 0;(לא משנה בדיוק מה זה עושה, פשוט תדע שככה צריך להיות)SubX, חסר לך מרכאות ב-printf.
פורסם 2007 באוקטובר 118 שנים מחבר ואו תודה רבה!שאלה אחרונהלא יותר פשוט לעשות מה שאמרת עם ה RESULT פשוט לשים בmain void main(int temp)כיכבר רשוםtemp=clock(hour,hour1,min,min1,sec,sec1);
פורסם 2007 באוקטובר 118 שנים אתה יכול לחסוך גם את כל המשתנים (גם את כל התוכן של הפונקציה clock) בשורה:return abs(((hour1*60+min1)*60+sec1)-((hour*60+min)*60+sec));שניצל ערכתי.
פורסם 2007 באוקטובר 118 שנים ואו תודה רבה!שאלה אחרונהלא יותר פשוט לעשות מה שאמרת עם ה RESULT פשוט לשים בmain void main(int temp)כיכבר רשוםtemp=clock(hour,hour1,min,min1,sec,sec1);אין קשר בין המשתנים האלו.TEMP הוא משתנה שמוכר רק בתוך הפונקציוה CLOCK. אם תרשום את זה כפי שרצית, 2 המשתנים לא יכילו את אותו ערך, ולא יהיו אותו משתנה.ולא נהוג(בכלל לא) לתת חתימה אחרת לMAIN.
פורסם 2007 באוקטובר 118 שנים החתימה של main זה לא עניין של נהוג או לא נהוג. לפי הסטנדרט הוא תמיד מחזיר int. זה לא עניין לשיקול דעת.כבר יצא לי לראות פלטפורמות שתוכנות קרסו עליהם כשהחתימה היתה לא נכונה (אם כי היום זה נדיר).
פורסם 2007 באוקטובר 118 שנים מחבר תיקון אחרון תודה לכל העוזרים פהתקינות קלט..שהשעות לא יהיו מעל 24 וכו'#include <stdio.h> #include <conio.h>#include <math.h>int clock(int hour,int hour1,int min,int min1,int sec,int sec1){ int temp,totalseconds,totalseconds1; totalseconds=(hour*60+min)*60+sec; totalseconds1=(hour1*60+min1)*60+sec1; temp=abs(totalseconds1-totalseconds); return temp;}void PrintDisplayOfSec(int nTotalSec){ // הגדרת משתנים עבור חלקי השעה int nHour; int nSed; int nMin; // קביעת מספר הדקות היוצאות ממספר השניות nMin = nTotal / 60; // בדיקה כמה שניות ישארו ללא דקה מאגדת nSec = nTotal % 60; // ביצוע אותה פעולה שעשינו על מספר השניות הכללי לדקות nHour = nMin / 60; nMin = nMin % 60; printf("%d : %d : %d", nHour, nMin, nSec);}void main(){ int hour,hour1,min,min1,sec,sec1; printf("enter hour,min and sec of first time"); scanf("%d%d%d",&hour,&min,&sec); printf("enter hour,min and sec of second time"); scanf("%d%d%d",&hour1,&min1,&sec1); while(hour<=24 && hour >0 && min<=60 %% min>0 && sec<=60 && sec>0 && hour1<=24 && hour1 > 0 && min1<=60 %% min1>0 && sec1<=60 && sec1>0 ) { //קריאה לפונקציה PrintDisplayOfSec(clock(hour,hour1,min,min1,sec,sec1)); else printf("enter hour,min and sec of first time"); scanf("%d%d%d",&hour,&min,&sec); printf("enter hour,min and sec of second time"); scanf("%d%d%d",&hour1,&min1,&sec1);} PrintDisplayOfSec(clock(hour,hour1,min,min1,sec,sec1)); }
פורסם 2007 באוקטובר 118 שנים אתה חייב לסדר את הטאבים שלך.... קשה מאוד לקרוא את הקוד.אתה לא יכול שיהיה לך else בלי if...
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.