עבור לתוכן

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

Featured Replies

פורסם
  • מחבר

עובד.

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

using namespace std;

int main()

{
int num,res=0,sum=0,i=0;

cout << "num?";
cin >> num;
i=num;
while (i != 0)
{

res=(num % 10);
sum=(sum+res);
num =(num/10);


if (num <=10)
{sum = sum +num;

cout << sum <<" sum"<<endl;
break;
}
}
char f;
cin >>f;
return 0;


}

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

עובד.

:jump:

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

using namespace std;

int main()

{
int long num=0,res=0,i=0;
cout << "enter number !";
cin >> num ;

while (num > 0 )
{ num = (num / 10);
i++;

}
cout <<i<< endl;




char f;
cin >> f;
return 0;


}

פורסם

נכון עובד

אבל הבדיקה אם המספר קטן מ10 בסוף היא מיותרת

הבדיקה היחידה שדרושה היא אם המספר שונה מאפס

הינה הקוד שלי

#include <iostream>

using namespace std;

int main() {
int num=0; //מספר נתון
int i=0; //מונה ספרות
int sum=0; // סכום הספרות
cout << "enter number !";
cin >> num ;

while (num) { //כל עוד המספר שונה מ-0
sum += num%10; //הוסף את ספרת האחדות לסכום הספרות
num = (num / 10); //העלם את ספרת האחדות
++i; //הגדל את מונה הספרות ב-1
}
cout <<i<< endl;
cout <<sum<<endl;
return 0;
}

פורסם
  • מחבר

הקוד שלך מאוד יעיל!!

תודה על השיתוף.

:xyxthumbs:

פורסם
  • מחבר

קלוט 10 מיספרים והדפס את הגבוה ביותר.

יעיל?

זה הקוד.

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

using namespace std;


int main()
{
int num=0,i=0,num_y=0;
cout << "number!";
cin >> num; //קליטה מספר להשוואה
for (i=0;i<9;i++){

cout << "number!";
cin >> num_y; //קליטה בלולאה
if (num >num_y) // השוואה חוזרת:אם אמת קולטים את המיספר הבא
{
continue;
}
num = num_y;//השמה במידה והתנאי לא מיתקיים


}
cout << num <<" num \n";


char f;
cin >> f;
return 0;
}

פורסם

למה השתמשת ב-continue? זה הופך את הלולאה שלך ללא ממש ברורה.

חוץ מזה, מה אומרים השמות num ו-num_y? גם לא ברור ממש.

פורסם
  • מחבר

גירסה יותר יעילה וברורה.

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

using namespace std;


int main()

{
int i=0,num=0,x=0,num_max=0,num_sec=0;
cout << "number!\n";
cin >> num_max;
for (i=0;i < 9;i++){
cout << "numbr !\n";
cin >> num_sec;
//cin >> num;
if (num_max > num_sec )

{
num_max=num_max;
num_sec=num_sec;

}

else
{
num_max=num_sec;
num_sec=num_max;

}




}
cout << num_max <<" num_max"<<endl;
//cout<< num_sec << "numsec"<<endl;


char f;
cin >>f;
return 0;

}

פורסם

למה כל הסרבול הזה? פעולה מהצורה x=x אומרת "קח את הערך שיש עכשיו ב-x, ושים אותו ב-x". מה ההגיון בזה?

פורסם
  • מחבר

קלוט 10 מיספרים והדפס את הגבוה ביותר ואת השני בגודלו.

הקוד יעיל?

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

using namespace std;


int main()

{
int i=0,num=0,num_max=0,sec=0,x=0,b=0,c=0;
cout << "number!\n";
cin >> num_max;
for (i=0;i < 9;i++){
cout << "numbr !\n";
cin >> num;
c=num_max;

if(num_max < num)
{

x++;
num_max=num;
}

b++;
if (b>x){
if(sec < num)
{
sec=num;
}
}
x++;

if (c < num)
{
sec=c;

}




}

cout <<num_max <<" num_max"<<endl;
cout<<sec<< "num_sec"<<endl;


char f;

cin >>f;
return 0;

}

פורסם

אתה חייב לסדר את ההזחה של הקוד. הקוד שלך מאוד לא קריא (מה גם ששמות המשתנים לא עוזרים - מה זה b? c? x?)

אתה בכלל מריץ את הקוד לפני שאתה מעלה אותו לכאן?

פורסם

אולי הוא מטרלל, די ברור שהקוד לא עובד, אז לשאול אם הוא יעיל?

פורסם
  • מחבר

הדרך היחידה שלי ליבדוק תקוד זה לטרלל (אני לא עובד עם תוכנה).

מצתער על הפשלה :silly::bash:

הוספתי תנאי וניראה שעובד בסדר.

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

using namespace std;


int main()

{
int i=0,num=0,num_max=0,sec=0,x=0,b=0,c=0;
cout << "number!\n";
cin >> num_max;
for (i=0;i < 9;i++){
cout << "numbr !\n";
cin >> num;
c=num_max; //איתחול ליפני הבדיקות

if(num_max < num){ //מציאת המקס וקידום המונה ב 1
x++;
num_max=num;
}

b++; //קידום המונה
if (b>x){ // השוואה בין המונים
if(sec < num){ //
sec=num; // חישוב ה sec
}
}
if(num_max > num){ // רק במידה ומקס גדול מ נאם קדם את המונה
x++;
}
if (c < num){ // במידה ו מקס קטן מנאם sec=max
sec=c;
}

}

cout <<num_max <<" num_max"<<endl;
cout<<sec<< "num_sec"<<endl;


char f;

cin >>f;
return 0;

}

פורסם

הדרך היחידה שלי ליבדוק תקוד זה לטרלל (אני לא עובד עם תוכנה).

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

תתקין Visual Studio Express:

http://go.microsoft.com/?linkid=9816758

ראה מדריך כיצד ליצור פרוייקט ++C בסיסי:

ועכשיו תוכל להריץ את הקוד שלך כמה שתרצה.

פורסם
  • מחבר

אני עובד עם התוכנה הזאת

Visual Studio Express 2008

היתכוונתי לתוכנה שבודקת תוכנה.(סתם זה מה שקפץ לי לראש)

חוץ מיזה מה רע בליבדוק זרימה של תוכנית על נייר?

פורסם

"לבדוק את הקוד" זה לקמפל, להריץ, ולראות שהוא עושה מה שהוא אמור לעשות. זה לא להשתמש בשום "תוכנת בדיקה".

מה רע בלבדוק על נייר? אף אחד לא כותב קוד על נייר, חוץ מתרגילים בסיסיים בבי"ס ובאוניברסיטה. כותבים קוד במחשב. כשמגיעים לכתוב קוד אמיתי, הקוד לא מסתכם ב20 שורות ו-2 לולאות, אלא בעשרות עד מאות קבצים, ואלפי עד עשרות אלפי שורות קוד.

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

ארכיון

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

דיונים חדשים