פורסם 2013 בינואר 412 שנים ואם לא היית יודע בזמן כתיבת הקוד כמה איברים הולכים להיות בסדרה? (לדוגמה, אם מספר האיברים בסדרה היה נקבע ע"י קלט מהמשתמש)באופן כללי כשפותרים בעיה, נסה לשמור את הפתרון "גנרי". כמו שמקודם אמרתי שהפתרון שלך היה עובד רק אם היו מבקשים מספר שמתחלק ב-3, גם עכשיו הפתרון עובד ספציפית עבור המספר 16.
פורסם 2013 בינואר 412 שנים מחבר טוב על הבעיה הגנרית יש פיתרון (החלפתי עם המישתנה c)אבל איך עוצרים תלולאה הזאת אחרי התנאי (את זה אני בודק עשכיו ולא הולך לי משהו) #include "stdafx.h"#include <iostream>using namespace std;int main(){ int a=1,b=0,i=0,c=0; for(i=0;i<=16;i++){ c=a+b; b=a; a=c; cout << c << endl; int res=0,i_fib=1; if ((c>0)&&(i_fib>0)) for(i_fib=1;i_fib<=c;i_fib++) { if (c%i_fib == 0) res++; } if (res <= 2 ) cout << c <<" reshoni\n"; else cout << c <<"lo reshoni\n"; }char f;cin >> f;return 0;*תוקן הקוד (המישתנה c בימקום ערך הn של הסידרה)
פורסם 2013 בינואר 412 שנים יש שתי אופציות. קודם כל, הביטוי האמצעי ב-for הוא התנאי של הלולאה, כלומר הלולאה ממשיכה כל עוד הוא אמת. לכן אפשר לעצור את הלולאה ע"י שינוי התנאי הזה. אופציה שנייה היא להשתמש בפקודה break שפשוט יוצאת מהלולאה.
פורסם 2013 בינואר 412 שנים מחבר חשבתי על זה : break לא מתאים הוספתי i_fib גדול שווה c ---כדי לסיים תלולאה (לא עובד) קשה קשה #include "stdafx.h"#include <iostream>using namespace std;int main(){ int a=1,b=0,i=0,c=0; for(i=0;i<=16;i++){ c=a+b; b=a; a=c; cout << c << endl; int res=0,i_fib=1; if ((c>0)&&(i_fib>0)) for(i_fib=1;i_fib<=c;i_fib++) { if (c%i_fib == 0) res++; if (res >= 2 ) cout << c <<"lo reshoni\n"; i_fib >= c;// זה התוספת } else cout << c <<" reshoni\n"; }char f;cin >> f;return 0;}
פורסם 2013 בינואר 412 שנים התוספת שהכנסת חסרת משמעות - הפעולה =< רק משווה, ולא משנה ערך של שום דבר.break גם יכולה להתאים.חוץ מזה, שים לב לדבר מיותר - אתה תמיד בודק אם המספר c מתחלק ב-1, אבל זה תמיד נכון - כל מספר מתחלק ב-1.
פורסם 2013 בינואר 412 שנים מחבר *יש טעות בקוד. #include "stdafx.h"#include <iostream>using namespace std;int main(){ int a=1,b=0,i=0,c=0; for(i=0;i<=16;i++){ c=a+b; b=a; a=c; cout << c << endl; int res=0,i_fib=1; if ((c>0)&&(i_fib>0)) { for(i_fib=2;i_fib<=(c-1);i_fib++) { if (c%i_fib == 0) res++; break; } if (res > 0) cout << c <<"lo reshoni\n"; else cout << c <<" reshoni\n"; } // continue; }char f;cin >> f;return 0;}
פורסם 2013 בינואר 412 שנים מחבר #include "stdafx.h"#include <iostream>using namespace std;int main(){ int a=1,b=0,i=0,c=0; cout << "reshoni white out titels"; for(i=0;i<=16;i++){ c=a+b; b=a; a=c; cout << c << endl; int res=0,i_fib=1; if ((c>0)&&(i_fib>0)) { for(i_fib=2;i_fib<=(c-1);i_fib++) { if (c%i_fib == 0) { res++; if (res > 0) cout << c <<"lo reshoni\n"; // if (res = 0) // cout << c <<"reshoni"; break; } } //else // cout << c <<" reshoni\n"; } }char f;cin >> f;return 0;} זה הקוד הכי טוב בנתיים
פורסם 2013 בינואר 412 שנים מחבר קלוט מספר והדפס את מיספר סיפרותיו.זה הקוד.יעיל?עריכה: אגב אפשר לעשות את זה עם "for"? #include "stdafx.h"#include <iostream>using namespace std;int main(){int num=0,res=0,i=0; cout << "enter number !"; cin >> num ; while (num > i ) { num = (num / 10); i++; if (num==1) i++; } cout <<i<< endl; char f; cin >> f; return 0;}
פורסם 2013 בינואר 412 שנים קודם כל יש לך IF מיותר בתוך הלולאה. תנסה לכתוב את כל הלולאה מחדש.דבר שני, תחשוב שאני חושב על מספר, אילו שאלות תשאל אותי כדי לגלות כמה ספרות יש למספר?
פורסם 2013 בינואר 412 שנים מחבר קלוט מיספר והדפס את סכום סיפרותיו. 1 service pack (או יותר נכון ליפני 1 service pack קימבנתי את התוכנית הקודמת עם התוכנית הנוכחית. *אני בהחלט יקח לתשומת ליבי את הערות שלכם וינסה לשפץ. בנתיים ככה התוכנית עובדת. הקוד. #include "stdafx.h"#include <iostream>using namespace std;int main(){double num=0;int i=0; cout << "enter number !"; cin >> num ; while (num > i ) { num = (num / 10); cout << num << "num while"<<endl; i++; if (num<i) i++; } cout <<i<< endl; cout << "enter only !the same number!" << endl; cin >> num; int n=0,sum=0,res_int=0; double res_double=0 ,num2=0 ; for (n= 0;n<=(i);n++) { res_double = (num / 10); cout << res_double << " double" << endl; num=res_int =(num / 10); cout << res_int << " int" << endl; num2=res_double - res_int; cout << num2 << " num2" << endl; num2=((num2)*10); cout << num2 <<" num2*10" << endl; sum=sum +num2; } cout << sum << " sum digits" << endl; char f; cin >> f; return 0;}
פורסם 2013 בינואר 412 שנים התוכנית שלך לא עובדת. אני לא רואה שום רציונל מאחורי התוכנית שכתבת. אני לא רואה איך האלגוריתם שניסית לכתוב שם יכול לבודד ספרות ממספר בייצוג נקודה צפה.תנסה לפני שאתה ניגש לקוד לנסח בצורה מסודרת את התוכנית שלך במילים.
פורסם 2013 בינואר 412 שנים התוכנית אבל לא עובדתתנסה מה מספר הספרות במספר 234ובקשר לגירסא החדשה הסתבכת קצתnum%10 זאת סיפרת האחדות כל פעם.תשתמש בזההאלוגריתם עצמו פשוטכל עוד המספר שונה מ0הוסף את ספרת האחדות לסכוםהעלם את ספרת האחדותהגדל את מונה הספרות ב1
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.