واضح آرشیو وب فارسی:سایت ریسک: شرح این برنامه وارون کردن - سی پلاس 0098 26 مهر 1387, 21:11با سلام خدمت دوستان این برنامه عدد ورودی رو خونده و وارون اون رو به خروجی می بره مشکل من اینجاست که نمی دونم چه جوری این عمل انجام میشه digit = num % 10; printf("%d",digit); num /= 10; ممنون می شم این قسمت که اعداد وارون میشه رو برام توضیح بدید باتشکر #include <stdio.h> #include <conio.h> int main() { int num, digit = 0 ; clrscr(); while(1){ printf(" ENTER a number:"); scanf("%d",&num); printf(" Inverse="); do{ digit = num % 10; printf("%d",digit); num /= 10; } while(num !=0); }//end of while(1) getch(); return 0; } the_king 26 مهر 1387, 22:06#include <stdio.h> #include <conio.h> int main() { int num, digit = 0 ; clrscr(); while(1) { printf(" ENTER a number:"); scanf("%d",&num); printf(" Inverse="); do { digit = num % 10; printf("%d",digit); num /= 10; } while(num !=0); } getch(); return 0; } عملگر % باقیمانده تقسیم صحیح یک عدد بر عدد دیگری رو حساب می کنه، مثلا باقیمانده تقسیم عدد 7 بر 2 برابر 1 است. وقتی شما باقیمانده تقسیم یک عددی رو بر 10 حساب کنید، مثل اینه که اولین رقم سمت راست اون عدد رو جدا کنید، مثلا باقیمانده تقسیم عدد 123 بر 10 برابر 3 است یا مثلا باقیمانده تقسیم عدد 476 بر 10 برابر 6 است. با استفاده از همین عملگر % و تقسیم کردن متوالی عدد بر 10 میشه رقم ها رو یکی یکی از سمت راست به چپ جدا کرد. digit = num % 10; printf("%d",digit); num /= 10; مثلا عدد 123 رو در نظر بگیرید که در متغیر num قرار داره. اول باقیمانده عدد 123 بر 10 رو حساب می کنیم که میشه 3 و در digit قرار می گیره. بعد digit رو چاپ می کنیم، یعنی عدد 3 را چاپ می کنیم. بعد عدد 123 رو بر 10 تقسیم می کنیم تا اولین رقم سمت راست که چاپ کرده بودیم از عدد حذف بشه، یعنی عدد 123 بشه عدد 12 و در داخل num قرار بگیره. اگر مقدار num صفر نبود (الان 12 است) دوباره از سر مراحل رو تکرار می کنیم... باقیمانده عدد 12 بر 10 رو حساب می کنیم که میشه 2 و در digit قرار می گیره. بعد digit رو چاپ می کنیم، یعنی عدد 2 را چاپ می کنیم (دفعه قبل 3 را چاپ کرده بودیم و حالا 2 را چاپ می کنیم، پس فعلا 32 رو در خروجی چاپ کرده ایم.) بعد عدد 12 رو بر 10 تقسیم می کنیم تا اولین رقم سمت راست که چاپ کرده بودیم از عدد حذف بشه، یعنی عدد 12 بشه عدد 1 و در داخل num قرار بگیره. اگر مقدار num صفر نبود (الان 1 است) دوباره از سر مراحل رو تکرار می کنیم... باقیمانده عدد 1 بر 10 رو حساب می کنیم که میشه 1 و در digit قرار می گیره. بعد digit رو چاپ می کنیم، یعنی عدد 1 را چاپ می کنیم (در دو دفعه قبل 3 و 2 را چاپ کرده بودیم و حالا 1 را چاپ می کنیم، پس فعلا 321 رو در خروجی چاپ کرده ایم.) بعد عدد 1 رو بر 10 تقسیم می کنیم تا اولین رقم سمت راست که چاپ کرده بودیم از عدد حذف بشه، یعنی عدد 1 بشه عدد 0 و در داخل num قرار بگیره. اگر مقدار num صفر نبود (الان 0 است) دوباره از سر مراحل رو تکرار می کنیم که شرط تکرار حلقه برقرار نیست. پس ما در نهایت در سه مرحله رقم های عدد رو از سمت راست به چپ چاپ کرده ایم که میشه 321
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1198]