楼上的第一题没法处理负数的,
第一题
#include
#include
void conv ( long s, long n )
{
long t;
if ( s == 0 ) return;
t = s%n;
s /= n;
conv ( s, n );
printf ( "%X", t );
}
void main ( void )
{
long a, n;
char sign = '\0';
printf ( "please input x:" );
scanf ( "%d", &a );
if( a < 0 )
{
sign = '-';
a = -a;
}
n = 1;
while ( n < 2 || n > 16 )
{
printf ( "please input n(1
}
printf("%c", sign);
conv ( a, n );
}
第二题
#include
#include
void fun(long s ,long *t) // long t -> long *t
{
long s1=10;
s/=10;
*t=s%10;
while(s) //While(s<0) -> while(s)
{
s=s/100;
*t=s%10*s1+*t;
s1=s1*10;}
}
main()
{long s,t;
clrscr();
printf("nPlease enter s:");scanf("%ld",&s);
fun(s,&t);
printf("The result is:%ld\n",t); //n -> \n
}
第一个
#include
#include
void conv ( long s, long n )
{
long t;
if ( s == 0 ) return;
t = s%n;
s /= n;
conv ( s, n );
printf ( "%X", t );
}
void main ( void )
{
long a, n;
printf ( "please input x:" );
scanf ( "%d", &a );
n = 1;
while ( n < 2 || n > 16 )
{
printf ( "please input n(1
}
conv ( a, n );
}
=====================================================================
第二个
#include
#include
void fun(long s ,long *t)
{
long s1=10;
s/=10;
*t=s%10;
while(s)
{
s=s/100;
*t=s%10*s1+*t;
s1=s1*10;}
}
main()
{long s,t;
clrscr();
printf("\nPlease enter s:");scanf("%ld",&s);
fun(s,&t);
printf("The result is:%ld\n",t);
}