ahmad-hagh
شنبه 07 خرداد 1390, 11:20 صبح
سلام دوستان
من یه تابع واسه مقلوب کردن یه عدد رو به دو صورت نوشتم و هر دو تابع به درستی کار میکنن
اما تو برنامم نیاز دارم از این تابع چندین بار در یه حلقه تکرار استفاده کنم
ولی وقتی این کار رو میکنم برنامم فقط 6 بار تابع رو درست احضار میکنه .و از بار ششم به بعد تابع درست کار نمیکنه
اگه بگین مشکلش کجاست ممنون میشم ( برنامه معکوس اعداد کوچکتر مساوی n (مقدار ورودی) رو چاپ میکنه)
#include<iostream>
#include<conio.h>
#include "dos.h"
using namespace std;
inline float Rev(float num)
{
int *n,*x,*s1;
n=new int;
x=new int;
s1=new int;
*s1=0;
int *len,*left,*right;
len=new int;
left=new int;
right=new int;
*right=1;
*left=num;
while(*left>0)
{ *right*=10;
*left/=10; }
for(;num-((long)num)>0;num*=10){}
*n=num;
while(*n>0)
{*x=(*n)%10;
*s1=(*s1)*10+*x;
*n=(*n)/10;
}
float m=(float)(*s1)/(*right);
delete x,n,left,right,len,s1;
return m;
}
float Rev2(float num)
{
int n,x,s1=0;
int len,left,right=1;
left=num;
while(left>0)
{
right*=10;
left/=10;
}
for(;num-((long)num)>0;num*=10){}
n=num;
while(n>0)
{
x=n%10;
s1=s1*10+x;
n=n/10;
}
return ((float)s1/right);
}
int main()
{
float n;
do{
cout<<"Please insert n (maximum length=6 and n>0) :";
cin>>n;
}while(n<0);
// for(int i=0;i<n;++i)
// if(i==Rev(i))cout<<i<<"\t";
cout<<endl;
float g;
//register float f=0.1;
//for(float i=0.5; i<n; i+=0.5)
for (float i=0.1 ; i<=n; i+=0.1)
{
//if ( f==Rev(f))
cout<<Rev(i)<<"\t";
}
getch();
return 1;
}
من یه تابع واسه مقلوب کردن یه عدد رو به دو صورت نوشتم و هر دو تابع به درستی کار میکنن
اما تو برنامم نیاز دارم از این تابع چندین بار در یه حلقه تکرار استفاده کنم
ولی وقتی این کار رو میکنم برنامم فقط 6 بار تابع رو درست احضار میکنه .و از بار ششم به بعد تابع درست کار نمیکنه
اگه بگین مشکلش کجاست ممنون میشم ( برنامه معکوس اعداد کوچکتر مساوی n (مقدار ورودی) رو چاپ میکنه)
#include<iostream>
#include<conio.h>
#include "dos.h"
using namespace std;
inline float Rev(float num)
{
int *n,*x,*s1;
n=new int;
x=new int;
s1=new int;
*s1=0;
int *len,*left,*right;
len=new int;
left=new int;
right=new int;
*right=1;
*left=num;
while(*left>0)
{ *right*=10;
*left/=10; }
for(;num-((long)num)>0;num*=10){}
*n=num;
while(*n>0)
{*x=(*n)%10;
*s1=(*s1)*10+*x;
*n=(*n)/10;
}
float m=(float)(*s1)/(*right);
delete x,n,left,right,len,s1;
return m;
}
float Rev2(float num)
{
int n,x,s1=0;
int len,left,right=1;
left=num;
while(left>0)
{
right*=10;
left/=10;
}
for(;num-((long)num)>0;num*=10){}
n=num;
while(n>0)
{
x=n%10;
s1=s1*10+x;
n=n/10;
}
return ((float)s1/right);
}
int main()
{
float n;
do{
cout<<"Please insert n (maximum length=6 and n>0) :";
cin>>n;
}while(n<0);
// for(int i=0;i<n;++i)
// if(i==Rev(i))cout<<i<<"\t";
cout<<endl;
float g;
//register float f=0.1;
//for(float i=0.5; i<n; i+=0.5)
for (float i=0.1 ; i<=n; i+=0.1)
{
//if ( f==Rev(f))
cout<<Rev(i)<<"\t";
}
getch();
return 1;
}