PDA

View Full Version : سوال: مشکل در چاپ صفر اضافه



davood59
شنبه 12 اردیبهشت 1388, 13:30 عصر
سلام دوستان؛
این برنامه تعداد ارقام یک عدد رو به تفکیک نشون میده. طرز کار اون هم به این صورته که هر باقیمانده رو توی یک خونه آرایه قرار میده.
حالا مشکل من اینه ؛ وقتی که 5 رقم وارد میکنید هیچ مشکلی نیست و به راحتی به صورت تفکیک شده چاپ میشه ولی اگه عدد کمتر از 5 رقم باشه اولش صفر اضافه می کنه. اگه میشه یک راهنمایی بکنید. با تشکر
کد :




#include <conio.h>
#include <stdio.h>
void main()
{
clrscr();
int a,b,i,j,d;
int c[5];
scanf("%d",&a);
;check for number bigger than 10
while (a>=10)
{
for (i=1;i<=5;i++)
{
b=a%10;
i[c]=b;
a=a/10;
}
for (j=5;j>=1;j--)
{
printf ("%d",j[c]);
}
}
getch();
}

mortezamsp
شنبه 12 اردیبهشت 1388, 14:35 عصر
عزيزمن مشكلت تو همون while هست . دستور while تو بيرون دستور for قرارداره ! بايد اونو داخل for بصورت if بنويسي.يعني تا وقتي عدد كوچكتر ده باشه for رو ادامه بده.

.بعدشم اون while ربطي به چاپ صفرهات نداره.بايد خودت نحوه چاپ رو كنترل كني تا صفرها پاك نشن مثلا بنويسي :



while(aray[i]!=0) i++;

for(j=i;j<=5;j++)
printf(%d , aray[j]);



براي اينكه اين دردسرهارو نداشته باشي بهتر بود از اول بجاي آرايه از يه متغير استفاده ميكردي:



for (i=1;i<=5 && a>=10;i++)
{
b=a%10;
c=c+(b*(10^i));
a=a/10;
}

امتحانشون كن.

davood59
یک شنبه 13 اردیبهشت 1388, 07:48 صبح
بايد خودت نحوه چاپ رو كنترل كني تا صفرها پاك نشن مثلا بنويسي :دوست عزیزم آقا مرتضی با توجه به عنوانی که نوشتم من که نمیخوام صفرها رو نگه دارم !!
مشکل من در چاپ صفر اضافه است. و من میخوام اونارو پاک کنم.
بعنوان مثال ببین: اگه 12345 رو وارد کنم دقیقا به من 12345 میده.(چون دقیقا 5 رقمه)
ولی اگه 1234 وارد کنم به من 01234 میده. و اگه 123 وارد کنم به من 00123 میده ، من میخوام این صفرها چاپ نشه.

Salar Ashgi
یک شنبه 13 اردیبهشت 1388, 19:38 عصر
سلام ، دوست عزيز روشهاي متفاوتي است ، مثلا ميشه يه تابع بازگشتي نوشت كه رقم هاي

يك عدد رو با فاصله چاپ كنه :

#include <iostream>
#include <conio>
void num_print(int n){
if(n<10)
cout<<n<<" ";
else{
num_print(n/10);
cout<<n%10<<" ";
}
}
//========================
int main(){
int n;
cout<<"Enter a Number :\n";
cin>>n;
num_print(n);
getch();
}

موفق و پيروز باشيد !!!

mortezamsp
یک شنبه 13 اردیبهشت 1388, 23:23 عصر
دوست عزیزم آقا مرتضی با توجه به عنوانی که نوشتم من که نمیخوام صفرها رو نگه دارم !!
مشکل من در چاپ صفر اضافه است. و من میخوام اونارو پاک کنم.
بعنوان مثال ببین: اگه 12345 رو وارد کنم دقیقا به من 12345 میده.(چون دقیقا 5 رقمه)
ولی اگه 1234 وارد کنم به من 01234 میده. و اگه 123 وارد کنم به من 00123 میده ، من میخوام این صفرها چاپ نشه.



داداش منم گفتم با دستور while کاری کنی تا صفرها چاپ نشن.یعنی تا جایی که ابتدای آرایه صفرهست جلو برویم و از آنجا به بعد ، از آن i به بعد ، آرایه رو چاپش کنی.