עבור לתוכן

c/c++ תרגול קוד יעיל

Featured Replies

פורסם
  • מחבר

לא רציתי ליפתוח עוד thread(עוד שאלה על קוד מקוצר)

קלוט 10 מיספרים,סכם כל שתיים מהם במהלך הקליטה והדפס בכל פעם את הסכום.

האם ניתן לקצר את זה?

זה הקוד שלי

[size=1]#include "stdafx.h"[/size]
[size=1]#include <iostream>[/size]

[size=1]using namespace std;[/size]

[size=1]int main()[/size]

[size=1]{[/size]
[size=1]int num_1 ,num,num_2,res_1,i;[/size]
[size=1]cout << "enter 10 numbers !";[/size]
[size=1]for (i=0;i<5;i++)[/size]
[size=1]{[/size]
[size=1] cin >> num;[/size]
[size=1] [/size]
[size=1] num_1 = num;[/size]
[size=1] num_2 = num_1;[/size]
[size=1] cout << "res = "<< res_1<< endl;[/size]
[size=1] res_1=0;[/size]
[size=1]}[/size]

[size=1]char f;[/size]
[size=1]cin >> f;[/size]
[size=1]return 0;[/size]

[size=1]}[/size]

  • תגובות 96
  • צפיות 8.5k
  • נוצר
  • תגובה אחרונה
פורסם

איפה אתה קולט פה 10 מספרים? בכל איטרציה של הלולאה אתה קולט רק מספר אחד...

חוץ מזה הדרישות של השאלה לא בדיוק ברורות. האם צריך כל זוג של מספרים סמוכים עם או בלי חפיפות? (כלומר, האם צריך לסכום את מספרים 1 ו-2, 3 ו-4, 5 ו-6 וכן הלאה, או לחילופין 1 ו-2, 2 ו-3, 3 ו-4 וכן הלאה?)

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

toggle.gif

פורסם
  • מחבר

אופס (העליתי תקוד הלא נכון)

מיתבצעת קליטה של שתי מיספרים עוקבים ברצף עד 10 מיספרים סכ"ה.

הקליטה היא מתוך ה "for" בזוגות.

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()

{
int num_1 ,num_2,res_1,i;
cout << "enter 10 numbers !";
for (i=0;i<5;i++)
{
cin >> num_1;
cin >> num_2;
res_1 = num_1+num_2;
cout << "res = "<< res_1<< endl;
res_1=0;
}

char f;
cin >> f;
return 0;

}

פורסם

:xyxthumbs:

רק שני תיקונים: אין צורך לאפס את res1, כי גם ככה באיטרציה הבאה של הלולאה אתה תדרוס אותו שוב. חוץ מזה, המשתנה הזה בכלל לא נחוץ - אתה יכול להדפיס ישירות את הערך num_1+num_2.

פורסם
  • מחבר

תודה יואב, עכשיו אני שובר תראש על תרגיל אחר. :bash::silly:

כיף מוי כיף...

פורסם
  • מחבר

קלוט מיספר וחשב את סכום כל המיספרים מ 1 ועד אליו.

(שאלה כללית: אני אמור לאתחל את כל המישתנים ל אפס ליפני ה "for"?)

בשאלה הזאת אתחלתי רק את "temp"

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()

{
int num,i,res,temp = 0;
cout << "enter positive number";
cin >> num;
for(i=0;i<=num;i++)
{

res = temp + i;
temp = res ;
}
cout << "res" << res;

char f;
cin >> f;
return 0 ;

}

פורסם

יש נוסחה לסכום טור, למה צריך לולאה?

פורסם

במשתנה חייבים לשים ערך כלשהו לפני שקוראים ממנו - וזהו. לכן אין שום צורך לאתחל את num, i או res (כי כל אחד מהם מאותחל במקום אחר).

חוץ מזה, למה אתה צריך את temp?

פורסם
  • מחבר

תיקון.

 #include "stdafx.h"
#include <iostream>

using namespace std;

int main()

{
int num,i,res=0;
cout << "enter positive number";
cin >> num;
for(i=0;i<=num;i++)
{

res = res + i;

}
cout << "res" << res;

char f;
cin >> f;
return 0 ;

}

פורסם
  • מחבר

מה הנוסחה ?

פורסם
  • מחבר

עם הנוסחה.

 #include "stdafx.h"
#include <iostream>

using namespace std;

int main()

{
int num,i,sum=0,a_1=1,a_n=0;
cout << "enter positive number";
cin >> num;
for(i=0;i<=num;i++)
{

sum = ((i*(a_1 + a_n++))/2);

}
cout << "res" << sum;

char f;
cin >> f;
return 0 ;

}

פורסם

:kopfpatsch:

פספסת את הנקודה, הסיבה לשימוש בנוסחא פה היא כדי להמנע מלולאה ארוכה. תיפור מהלולאה.

פורסם
  • מחבר

בלי לולאה.

 #include "stdafx.h"
#include <iostream>

using namespace std;

int main()

{
int num,i,sum=0,a_1=1;
cout << "enter positive number";
cin >> num;
sum = ((num*(a_1 + num))/2);
cout << "res" << sum;

char f;
cin >> f;
return 0 ;

}

פורסם
  • מחבר

סידרת פיבונצ'י:

ידועים שני הספרות הראשונות בסידרה 0 ו 1 -התוכנית מריצה 15 ספרות ראשונות בסידרה.

הייתי רוצה לדעת אם:

1.יש דרך קצרה יותר או שונה למימוש הסידרה?

2. יש דרך להציג את הסידרה מיבלי שידועים שני הספרות הראשונות?

תודה.

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()

{
int i=0,a=0,b=1,c=0;

for(i=0;i<=5;i++)
{
c=a+b;
cout <<"res\n" << c << endl;
a=c+b;
cout <<"res\n" << a << endl;
b=a+c;
cout <<"res\n" << b << endl;


}

char f;
cin >> f;
return 0;



}

ארכיון

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

דיונים חדשים