פורסם 2006 ביוני 2019 שנים שאני רושם :while (something){***}או בכל דרך אחרת , איך אני יכול לבדוק את המספרים שאני מכניס , אם יש משתנה אחד של קליטת מספרים ואני רוצה לבדוק אם המספרים מסודרים בסדר כלשהו כמו סדר עולה ,יורד, או לקחת את כל המספרים שקלטתי ולעשות ביניהם ממוצע. איך עושים את זה ?
פורסם 2006 ביוני 2019 שנים תראה, סביר להניח שלא תכניס מספרים גדולים מידי, ולכן אתה יכול לפצל את המשתנה שלך ל- 2.יש דבר כזה שנקרא(לא זוכר איך קוראים לו) והוא מתייחס לסדר הקריאה של משתנים בתוך פקודת. משהו שלא מוגדר. למשל, אם אתה מבצע n=n++;.תנסה לנצל את זה(אני ממש לא זוכר את השם של זה).
פורסם 2006 ביוני 2119 שנים תראה, סביר להניח שלא תכניס מספרים גדולים מידי, ולכן אתה יכול לפצל את המשתנה שלך ל- 2.יש דבר כזה שנקרא(לא זוכר איך קוראים לו) והוא מתייחס לסדר הקריאה של משתנים בתוך פקודת. משהו שלא מוגדר. למשל, אם אתה מבצע n=n++;.תנסה לנצל את זה(אני ממש לא זוכר את השם של זה).אתה מתכוון ל-parameter evalutation order. -ב-C/C++ סדר הפרמטרים שמועברים לפונקציה אינו מוגדר, ולכן הקוד הבא:n = 1;func( n, ++n);יכול לגרום ל-func להקרא עם 1,2 או עם 2,2.בשום אופן לא להשתמש או לסמוך על זה!מה שאתה כן יכול לעשות זה להגדיר פונקציה שמקבלת מספר פרמטרים, כך שכל פרמטר הוא למעשה משתנה.אבל נראה לי שמטרת השאלה היא למצוא אלגוריתם "מגניב" שיפתור את הבעיה תוך שימוש במשתנה אחד בלבד. אני חייב להודות שעל פניו אני לא רואה דרך לעשות את זה. נחשוב ונראה, אם נעלה על משהו אפרסם.
פורסם 2006 ביוני 2119 שנים מחבר לא ! זה בכלל לא לרמה שלכם (רמה נמוכה מה שאני שואל!)הנה דוגמא :קלוט סדרת מספרים עד לקליטת 2-. יש לבדוק האם כל המספרים שנקלטו מסודרים בסדר עולה ולהדפיס הודעה מתאימה.
פורסם 2006 ביוני 2119 שנים הממ, ניסית:int n, last;bool ascending = true;scanf("%d", &last);scanf("%d", &n);while (n != -2) { ascending = ascending && (n > last); last = n; scanf("%d", &n);}printf(ascending);
פורסם 2006 ביוני 2319 שנים יש כאן 3 משתנים. הוא צריך 1 בלבד.זה ממש נראה בלתי אפשרי - במיוחד כי scanf חייב גם ככה משתנה אליו הוא כותב ישירות את הקלט.
פורסם 2006 ביוני 2319 שנים מחבר חחח אולי לא הבנתם , משתנה אחד בשביל קליטת מספרים בWHILE .אתם יכולים להוסיף משתנים אחרים אבל שלא יהיו בשביל לקלוט מספרים או בשביל מספרים.
פורסם 2006 ביוני 2319 שנים בדקתי הפעם האם זה הפוך או לא או לא שניהם. מצטער מראש אם יש שגיאות ניסוח בהודעות הפלט: #include <iostream.h>#include <stdlib.h>int is_sorted (int num [], int n){ for(int i=0;i<n-1;i++) if(num[i]>num[i+1]) return 0; return 1;}int is_reverse_sorted (int num [], int n){ for(int i=0;i<n-1;i++) if(num[i]<num[i+1]) return 0; return 1;}int main(){ int *num = NULL; int i=0; do{ num = (int*)realloc(num, sizeof(int)*(i+1)); cout<<"Please enter num."<<endl; cin>>num[i]; }while(num[i++]!=-2); if(is_sorted(num, i)) cout<<"The values were sorted."<<endl; else{ if(is_reverse_sorted(num, i)) cout<<"The values were reverse sorted."<<endl; else cout<<"The values weren't sorted and reverse sorted."<<endl; } free(num); cout<<endl; return 0;}
פורסם 2006 ביוני 2319 שנים גם מערך, גם הקצאה מחדש, לא חבל?הפתרון של שניצל הוא נחמד...ד.א. אין BOOL ב- C.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.