PDA

View Full Version : چاپ مغلوب 10 عدد



majmaji
جمعه 11 تیر 1389, 09:46 صبح
سلام دوستان
خوب هستید یک سوال
در درس برنامه نویسی استاد ما یک مثال داد که صورت سوال اینه:
برنامه ای بنویسید که 10 عدد از ورودی بخواند و مغلوب آنها را در خروجی چاپ کند.
همگروهی من که خیلی پسر باهوشیه این برنامه رو نوشت:

#include <iostream.h>
#include <conio.h>


void main (void)
{
int a,i;
for(i=1;i<11;i++)
{
cin>>a;
for( ;a>0; )
{
cout<<a%10;
a=a/10;
}
cout<<endl;
}
getch();
}
البته من چیز زیادی نفهمیدم اگه میشه کمک کنید و به سوالات من پاسخ بدید
1- ما از دو تا حلقه تو در تو استفاده می کنیم کار اولی گرفتن عدد تا 10 بار هست اما چرا حلقه دومی به این صورت نوشته شده است؟ حلقه دوم چیکار میکنه؟
من یک کار خلاقانه کردم و بجای for دوم یک if گذشتم و دیدم که بجای مغلوب عدد فقط رقم آخر عدد رو چاپ میکنه!!! چرا؟؟؟
بعد چرا در داخل حلقه دوم یکبار دستور میدیم که باقیمانده عدد رو بر 10 چاپ کنه بعدش تو خط بعدی میگیم که عدد برابر است با همون عدد تقسیم بر 10؟؟؟؟؟؟؟؟؟؟
ممنون میشم کمکم کنید

Salar Ashgi
جمعه 11 تیر 1389, 10:51 صبح
بصورت ساده تر :



#include <iostream>
#include <conio>
int main(){
int n;
cout<<"Enter 10 number to be reversed :\n";
for(int i=1;i<=10;i++){
cin>>n;
while(n!=0){
cout<<n%10;
n/=10;}
cout<<"\n========\n";
}

getch();
}


توضیح :

* حلقه for واسه گرفتن 10 عدد

* حلقه while برای چاپ کردن مقلوب عدد ، به این صورت که میدونیم رقم یکان هر عدد باقیماندش بر 10

هستش ، پس ما میایم هر سری باقیمانده عدد رو بر 10 چاپ می کنیم و عدد رو هر سری بر 10 تقسیم

میکنیم .

موفق باشید .

majmaji
جمعه 11 تیر 1389, 15:36 عصر
بصورت ساده تر :



#include <iostream>
#include <conio>
int main(){
int n;
cout<<"Enter 10 number to be reversed :\n";
for(int i=1;i<=10;i++){
cin>>n;
while(n!=0){
cout<<n%10;
n/=10;}
cout<<"\n========\n";
}

getch();
}
توضیح :

* حلقه for واسه گرفتن 10 عدد

* حلقه while برای چاپ کردن مقلوب عدد ، به این صورت که میدونیم رقم یکان هر عدد باقیماندش بر 10

هستش ، پس ما میایم هر سری باقیمانده عدد رو بر 10 چاپ می کنیم و عدد رو هر سری بر 10 تقسیم

میکنیم .

موفق باشید .
آها تازه فهمیدم یعنی عدد 4 رقمی میشه 3 رقم بعد دو رقم بعد یه رقم بعدشم که صفر میشه از while میاد بیرون

راستی چرا من بجای while از if استفاده میکنم فقط رقم آخر رو نشون میده؟

Salar Ashgi
جمعه 11 تیر 1389, 16:51 عصر
راستی چرا من بجای while از if استفاده میکنم فقط رقم آخر رو نشون میده؟


چون در اینصورت عمل تقسیم فقط یکبار صورت میگیره .