الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الكتابة بالمعكوس

مغلق
بدأه emem في 4 مايو 2004 · 7 رد · 638 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف لي أن اكتب برنامج بلغة السي نقوم من خلاله بادخال رقم مثلا 527 ثم يقوم السي بطباعته بالعكس كالتالي 725 بدون استخدام المصفوفات

وجزاكم الله خيرا

#2

السلام عليكم ,,

يمكنك استخراج الرقم الذي تريده كالتالي ,,

من الرقم 527 تقوم باستخراج الرقم 5 ثم تطبعه ,, ثم تخرج الرقم 2 وتطبعه ثم ال 7 ,,

لكن كيف يتم استخراج الأرقام ,,

كالتالي :

تأتي بباقي قسمة الرقم 527 على 100 فسيكون 27 ثم تطرح الرقم 527 من باقي القسمة وتقسم كل الناتج على 100 فتحصل على الرقم 5 ,,

المرة الثانية ستقوم بنفس العملية لكن ستطرح من رقمك الأصل 527 الرقم 500 ثم الناتج ستطبق عليه نفس النظرية السابقة ,, لكن بباقي اقسمة ثم القسمة على 10 ,,

حاول في الأمر وستفلح باذن الله ,, وان لم تستطع سنعطيك الحل في النهاية :)

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3
int X = 527;
int mod;
int tmp;
int first;
tmp = X % 100;
tmp = X - tmp;
tmp = tmp / 100;
first = tmp;
cout>>tmp;
tmp = X - first;
tmp = tmp / 10;
cout >> tmp;
tmp = X - first;
tmp = tmp % 10
cout>>tmp;

إن شاء الله يزبط لانه انا لست خبير C++ :(

وايضا هذا بالطريقة التي وصفها اخي HGB لكن لن تعمل على ارقام اقل او اكثر من 3 خانات

تم تعديل هذه المشاركة بواسطة Maverick في 4 مايو 2004 في 16:22

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#4

السلام عليكم,

إذا أردت اتخاذ الطريق السهل باستعمال الدوال الجاهزة يمكن أن تستعمل الدالة _strrev - الشرطة على اليسار - وهذه موجوحة في المكتبة <string.h> وما تقوم به هي قلب جملة ما يعني مثلا abc ترجعها cba هذا من جهة وإذا كنت تهتم بقلب الأرقام كما ذكرت يمكن أن تزيد الدالة الآتية _itoa - دائما الشرطة على اليسار - وهذه توجد في المكتبة <stdlib.h> وهذه تقوم بتحويل رقم من نوع int إلى شكله ascii أو نقول إلى جملة .فالطريقة المتبعة تكون إذن كالتالي .

- تدخل الرقم

- تعمل عليه الدالة _itoa لتحوله إلى جملة أو String

- تعمل الدالة _strrev على هذه الجملة الأخيرة ليصبه عندك الرقم مقلوب

إلى اللقاء.

#5

السلام عليكم

ارى ان افضل طريقه هى إستخدام ال stack , لانك فى هذه الحاله لاتحتاج الى معرفه طول الرقم

while(!endOfString){
push(Nr);
i++;
}
while(i){
pop(Nr);
cout <<Nr;
i--;
{

والسلام

تم تعديل هذه المشاركة بواسطة احمد غريب في 4 مايو 2004 في 19:32

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#6

السلام عليكم ورحمة الله وبركاته

عذرا يا اخ احمد

ولكن

اتوقع ان الاخ emem مبدأ في لغة البرمجه فمراح يفهم وش تقصد في برنامجه

اخي

هذا هو مطلوبك

وإن شاء الله اكون افدك

ولا تنسى من صالح دعائك

#include<iostream.h>
#include<conio.h>
void main ()
{
int num,x,temp;
cout<<"enter the number:";
cin>>num;
cout<<'\n'<<"number:";
while(num>0)  //  اذ كان العدد اكبر من الصفر يدخل loop
{

temp=num;  
x=temp%10;  //  نضع باقي القسمه في المتغير x   
num/=10;  // نقسم  العدد على عشره
cout<<x;  //  نخرج باقي القسمه وهي  اخر عدد في الرقم المدخل
};
getch();
}
#7

السلام عليكم

بارك الله فيكى الاخت الفاضله Mrs.n فعلاً فى بعض الاحيان يغفل الانسان عن الحلول البسيطه و يسعى ورا الحلول المعقده.

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#8

السلام عليكم ورحمة الله وبركاته

أشكركم جميعا أيها السادة على ردودكم التي استفدت منها وقد حلت مشكلتي وجزاكم الله عني ألف خير.

وإلى الأمام وبارك الله فيكم

هذا الموضوع مغلق.

مواضيع مشابهة