هذا كود برنامج swap
#include<iostream>
int swap(int&,int&);
main()
{
int x,y,result;
cin>>x>>y;
result=swap(x,y);
cout<<x<<y;
return 0;
}
int swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
return x,y;
}هذا كود برنامج swap
#include<iostream>
int swap(int&,int&);
main()
{
int x,y,result;
cin>>x>>y;
result=swap(x,y);
cout<<x<<y;
return 0;
}
int swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
return x,y;
}اهلا بك
الاخطاء :
1- انت قمت بتعريف الدالة swap بهذا الشكل
int swap(int&,int&);
بينما عندما قمت بتعريف جسم الدالة , قمت بكتابة الدالة على هذا الشكل:
int swap(int x,int y)
يفترض ان يكون تعريف الدالة عند الاعلان عنها هو نفسه تعريف الدالة عند كتابة جسم الدالة .
2- يفترض ان تستدعي الدوال cin و cout بعد تضمين الملف الرأسي :
using std::cout; using std::cin;
3- ايضا لافائدة من استخدام الطريقة السابقة في الاعادة , لان الدوال لاتعيد الا قيمة وحيدة ( يمكن التحايل عليها بجعلها تعيد اكثر من قيمة ) , لكن افتراضيا قيمة واحدة فقط .
اي ان الجملة return والمتغير result لا فائدة منهما .
يصبح الكود بشكله النهائي .
#include<iostream>
using std::cout;
using std::cin;
void swap(int&,int&);
main()
{
int x,y;
cin>>x>>y;
swap(x,y);
cout<<x<<y;
return 0;
}
void swap(int &x,int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}
اشهد ان لا إله إلا الله وان محمدا ً رسول الله
كنت داخل متحمس ومعطف أكمامي عشان أرد بس سبقني الأخ تايم الله يعطيه العافيه :)
يمكن الاستغناء عن دالة swap ومتغيرها temp ، ;)
#include<iostream>
using namespace std;
int main()
{
int x,y;
cin >> x >> y;
y = x - y + (x=y);
cout << x << y;
return 0;
}تم تعديل هذه المشاركة بواسطة دحدوح في 30 أكتوبر 2008 في 08:09
ألاحظ انك تحصلت على الرد المطلوب
ولكن لو كنت قمت بتنفيذ الكود التالي
#include<iostream>
using std::cout;
using std::cin;
void swap(int&,int&);
main()
{
int x,y;
cin>>x>>y;
swap(x,y);
cout<<x<<y;
return 0;
}
void swap(int &x,int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}لكنت واجهة مشكلة
و هي عند الجملة return 0
لأن الدالة تم تعريفها على انها void
و الدالة عندما تكون هكذا فهي لا ترجع قيم مطلقاً فلا نستخدم return
الdata type الأفتراضي للقيمه الراجعه في الداله هو int ، لذلك في حال كتب main مباشره القيمه الراجعه بتكون من نوع int ، لذلك لا مشكله .. ولكن يفضل كتابتها صراحه int main .
بالتوفيق ،
http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة
https://moalfat.com للكتب الالكترونية والكورسات التعليمية
Everything we see now is just an engineering solution based on old science
اقتباسلكنت واجهة مشكلةو هي عند الجملة return 0
لأن الدالة تم تعريفها على انها void
و الدالة عندما تكون هكذا فهي لا ترجع قيم مطلقاً فلا نستخدم return
واين هي الدالة التي تم تعريفها على اساس انهاvoid وجعلناها تعيد القيمة return 0 ؟
تم تعديل هذه المشاركة بواسطة time1 في 2 نوفمبر 2008 في 13:28

اشهد ان لا إله إلا الله وان محمدا ً رسول الله
محمد علاو كتب:كنت داخل متحمس ومعطف أكمامي عشان أرد بس سبقني الأخ تايم الله يعطيه العافيه :)
والله يا صاحبي انا متلك
دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب
حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .
الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية
الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير