עבור לתוכן

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

Featured Replies

פורסם

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

יש קוד יותר קצר לזה?

זה הקוד שלי\\\

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


using namespace std;




int main ()


{
double a,b ;
int c,s;
double z,x;

cout << "put num";
cin >> a;
cout << "put second num";
cin >> b;
s = (a / b) ;
cout << s << endl;
c = (b / a) ;
cout << c << endl;
cout << c<< endl;
z = (a / b) ;
cout << x << endl;


x = (b / a) ;




if (a > b)
{
if ( ( z > s) || (z < s))


cout << " not divided\n";
if (b > a)
{
if ((x > c ) || (x < c))
{
cout << " not divided\n";
}
}
else
{
cout << "divided\n";
}
}


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

תודה

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

ברוך הבא לפורום. ערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

פורסם

מה המגבלות והנחות המוצא? מספרים שליליים חוקיים? חייב להיות מספרים שונים מ 0?

פורסם
  • מחבר

זו הצורה שכתובה השאלה אין מעבר לזה פירוט

אני חושב שצריך להיתיחס רק ל "אינטגרים"

פורסם

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

פורסם
  • מחבר

צודק!

השאלה כללית אין פירוט נוסף (גם אני לא הבנתי מה רוצים שם)

תודה בכל מיקרה

פורסם

האם אתה מכיר את אופרטור השארית? דהיינו האופרטור '%'?

אגב, הקוד לא קריא בעליל. מה אומרים כל המשתנים האלה? למה אין להם שמות נורמליים?

פורסם
  • מחבר

אכן מכיר

יש לי גירסה נוספת עם האופרטור הזה (שלא עובדת לצערי :) )

אני ישנה תשמות ויעלה את זה שוב (אם זה מענין את מישהו פה)

פורסם
  • מחבר

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

 #include "stdafx.h"
#include <iostream>
using namespace std;




int main ()


{
int num1,num2 ;
int res1,res2;



cout << "put num";
cin >> num1;
cout << "put second num";
cin >> num2;
res1 = (num1 % num2 );
cout << res1;
res2 = (num2 % num1);
cout << res2;


if (num1 > num2)
{
if ( res1 == 0)
cout << " divided\n";
else
cout << "not divided\n";

}
if (num2 >num1)
{
if (res2 == 0)
cout <<"divided \n";
else
cout << "not divided \n";

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

פורסם

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

חוץ מזה, לא טיפלת במקרה ששני המספרים שווים.

פורסם
  • מחבר

אוקי , זה ניראה לי סוגר את כל האפשרויות .
מיספרים חיובים ושלילים.




#include "stdafx.h"

#include <iostream>

using namespace std;

int main ()

{

int num1,num2 ;

int res1,res2;

cout << "put num";

cin >> num1;

cout << "put second num";

cin >> num2;

res1 = (num1 % num2 );

cout << res1;

res2 = (num2 % num1);

cout << res2;

if ((( res1 == 0)|| ( res2 == 0 ))||(num1 == num2))

cout << " divided\n";

else

cout << "not divided\n";

char f;

cin >> f;

return 0 ;

}

פורסם
  • מחבר

אוקי , זה ניראה לי סוגר את כל האפשרויות .

מיספרים חיובים ושלילים.

#include <iostream>

using namespace std;

int main ()

{

int num1,num2 ;

int res1,res2;

cout << "put num";

cin >> num1;

cout << "put second num";

cin >> num2;

res1 = (num1 % num2 );

cout << res1;

res2 = (num2 % num1);

cout << res2;

if ((( res1 == 0)|| ( res2 == 0 ))||(num1 == num2))

cout << " divided\n";

else

cout << "not divided\n";

char f;

cin >> f;

return 0 ;

}

[/left]

#include "stdafx.h"

פורסם

זה לא מטפל במקרה שאחד המספרים הוא 0 (אבל לא יודע אם זה חשוב). ובאופן שבו זה כתוב עכשיו, הבדיקה אם המספרים זהים מיותרת.

פורסם
  • מחבר

יוני , תודה על ה הערה.

תיקנתי

#include "stdafx.h"
#include <iostream>
using namespace std;




int main ()


{
int num1,num2 ;
int res1,res2;



cout << "put num";
cin >> num1;
cout << "put second num";
cin >> num2;
if ((num1 == 0) ||( num2 == 0))
cout << "not divided";
else
{
res1 = (num1 % num2 );
cout << res1;
res2 = (num2 % num1);
cout << res2;
}


if (( res1 == 0)|| ( res2 == 0 ))


cout << " divided\n";


else

cout << "not divided\n";



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

ארכיון

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

דיונים חדשים