Given only putchar (no sprintf, itoa, etc.) write a routine
putlong that prints out an unsigned long in decimal.




Answers were Sorted based on User's Feedback



Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned lon..

Answer / raghuram.a

#include <stdio.h>
#include<conio.h>
void putlong(unsigned long x)
{
if (x>=10)
{
putlong(x/10);
}
putchar(x%10+48);
}
main()
{
unsigned long a;
clrscr();
printf("enter long integer:");
scanf("%ld",&a);
putlong(a);
getch();
return 0;

}

Is This Answer Correct ?    12 Yes 0 No

Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned lon..

Answer / prateek caire

void print(unsigned n)
{
static c = 0;
if( n < 10)
{
putchar(n + 48);
return;
}
int m = n%10;
print(n/10);
if(++c%3 == 0) putchar(',');
putchar(48 + m);
}

Is This Answer Correct ?    7 Yes 2 No

Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned lon..

Answer / suraj gupta

#include<stdio.h>
#include<string.h>
void printInt(unsigned long x){
int div=1;
if (x > 10){
div=x/10;
printInt(div);
}
//putchar(x % 10+'0');Both will work fine
putchar(x % 10+48);
}
int main(){
long int a;
printf(" Enter integer value : ");
scanf("%d",&a);
printf("\n");
printInt(a);
return 0;
}

Is This Answer Correct ?    1 Yes 1 No




Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned lon..

Answer / sanjay

#include<stdio.h>
#include<conio.h>

int main()
{
unsigned long abc=234455787; int div1;
div1=print_int(abc);
getch();
}


int print_int(long val)
{ int div=1; char c;
if (val>=10)
{
div=print_int(val/10);
}
putchar(val%10+48);
return (1);
}

Is This Answer Correct ?    0 Yes 0 No

Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned lon..

Answer / meibella

void putLong(unsigned int x, unsigned int *a, int *j)
{
unsigned int temp = x/10;
unsigned int remainder = x%10;
a[(*j)++] = remainder;
if (temp < 1)
return ;
else
putLong(temp,a,j);


}
int main()
{
unsigned int * a = new unsigned int[12] ;
int j =0;
putLong(1735648,a,&j);
for (int i = j-1; i>=0; i--)
{
putchar(a[i]+48);
}
return 0;
}

Is This Answer Correct ?    0 Yes 2 No

Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned lon..

Answer / rakesh

void main()
{
unsigned long n;
int i;
void putlong(unsigned long);
cout<<"\nEnter the number::";
cin>>n;
putlong(n);
}

void putlong(unsigned long n)
{
if(n==0)
return;
print(n/10);
putchar((n%10) + 48);

}

Is This Answer Correct ?    2 Yes 10 No

Post New Answer



More C Code Interview Questions

String reverse with time complexity of n/2 with out using temporary variable.

10 Answers   Symantec, NetApp,


Write a program to print a square of size 5 by using the character S.

6 Answers   Microsoft,


#include<stdio.h> main() { int a[2][2][2] = { {10,2,3,4}, {5,6,7,8} }; int *p,*q; p=&a[2][2][2]; *q=***a; printf("%d..%d",*p,*q); }

1 Answers  


struct aaa{ struct aaa *prev; int i; struct aaa *next; }; main() { struct aaa abc,def,ghi,jkl; int x=100; abc.i=0;abc.prev=&jkl; abc.next=&def; def.i=1;def.prev=&abc;def.next=&ghi; ghi.i=2;ghi.prev=&def; ghi.next=&jkl; jkl.i=3;jkl.prev=&ghi;jkl.next=&abc; x=abc.next->next->prev->next->i; printf("%d",x); }

1 Answers  


main() { int i=5; printf(“%d”,i=++i ==6); }

1 Answers  






what will be the output of this program? void main() { int a[]={5,10,15}; int i=0,num; num=a[++i] + ++i +(++i); printf("%d",num); }

3 Answers   Wipro,


#define assert(cond) if(!(cond)) \ (fprintf(stderr, "assertion failed: %s, file %s, line %d \n",#cond,\ __FILE__,__LINE__), abort()) void main() { int i = 10; if(i==0) assert(i < 100); else printf("This statement becomes else for if in assert macro"); }

1 Answers  


main() { int *ptr=(int*)malloc(sizeof(int)); *ptr=4; printf("%d",(*ptr)+++*ptr++); }

3 Answers   GNITC,


main( ) { char *q; int j; for (j=0; j<3; j++) scanf(“%s” ,(q+j)); for (j=0; j<3; j++) printf(“%c” ,*(q+j)); for (j=0; j<3; j++) printf(“%s” ,(q+j)); }

1 Answers  


#define a 10 void foo() { #undef a #define a 50 } int main() { printf("%d..",a); foo(); printf("%d..",a); return 0; } explain the answer

1 Answers  


Which one is taking more time and why ? :/home/amaresh/Testing# cat time.c //#include <stdio.h> #define EOF -1 int main() { register int c; while ((c = getchar()) != EOF) { putchar(c); } return 0; } ------------------- WIth stdio.h:- :/home/amaresh/Testing# time ./time_header hi hi hru? hru? real 0 m4.202s user 0 m0.000s sys 0 m0.004s ------------------ Witout stdio.h and with #define EOF -1 =================== /home/amaresh/Testing# time ./time_EOF hi hi hru? hru? real 0 m4.805s user 0 m0.004s sys 0 m0.004s -- From above two case , why 2nd case is taking more time ?

0 Answers  


3) Int Matrix of certain size was given, We had few valu= es in it like this. =97=97=97=97=97=97=97=97=97=97=97 1 = | 4 | | 5 | &= nbsp; | 45 =97=97=97=97=97=97=97=97=97=97=97 &n= bsp; | 3 | 3 | 5 | = | 4 =97=97=97=97=97=97=97=97=97=97=97 34 |&nbs= p; 3 | 3 | | 12 | &= nbsp; =97=97=97=97=97=97=97=97=97=97=97 3 | &nbs= p; | 3 | 4 | = | 3 =97=97=97=97=97=97=97=97=97=97=97 3 | = ; | | | = ; 3 | =97=97=97=97=97=97=97=97=97=97=97 &= nbsp; | | 4 | = ; | 4 | 3 We w= ere supposed to move back all the spaces in it at the end. Note: = If implemented this prog using recursion, would get higher preference.

0 Answers   RoboSoft,






Categories