#include<stdio.h>
#include<string.h>
int num1[ 10 ] , num2[ 10 ] , ANS[ 10 ] ;
void dectohex( int a)
{
switch ( a)
{
break ;
break ;
break ;
break ;
break ;
break ;
}
}
void Add( )
{
int i, j, carry, ans, flag;
int len1, len2;
char str1[ 10 ] , str2[ 10 ] ;
printf ( "Enter second number" ) ; for ( i= len1- 1 , j= 9 ; i>= 0 ; i--, j-- )
{
if ( str1[ i] >= '0' && str1[ i] <= '9' )
{
num1[ j] = str1[ i] - '0' ;
}
else if ( str1[ i] >= 'A' && str1[ i] <= 'F' )
{
num1[ j] = str1[ i] - 55 ;
}
}
for ( i= len2- 1 , j= 9 ; i>= 0 ; i--, j-- )
{
if ( str2[ i] >= '0' && str2[ i] <= '9' )
{
num2[ j] = str2[ i] - '0' ;
}
else if ( str2[ i] >= 'A' && str2[ i] <= 'F' )
{
num2[ j] = str2[ i] - 55 ;
}
}
carry= 0 ;
for ( i= 9 ; i>= 0 ; i-- )
{
ans= num1[ i] + num1[ i] + carry;
if ( ans>= 16 )
{
carry= ans/ 16 ;
}
else
{
carry= 0 ;
}
ANS[ i] = ans% 16 ;
}
flag= 0 ;
for ( i= 0 ; i< 10 ; i++ )
{
if ( flag== 0 && ANS[ i] > 0 )
{
if ( ANS[ i] > 9 )
{
dectohex( ANS[ i] ) ;
}
else
{
flag= 1 ;
}
}
else if ( flag== 1 )
{
if ( ANS[ i] > 9 )
{
dectohex( ANS[ i] ) ;
}
else
{
}
}
}
}
void Multiply( )
{
int i, j, carry, ans, flag, k;
int len1, len2;
char str1[ 10 ] , str2[ 10 ] ;
printf ( "Enter second number" ) ; for ( i= len1- 1 , j= 9 ; i>= 0 ; i--, j-- )
{
if ( str1[ i] >= '0' && str1[ i] <= '9' )
{
num1[ j] = str1[ i] - '0' ;
}
else if ( str1[ i] >= 'A' && str1[ i] <= 'F' )
{
num1[ j] = str1[ i] - 55 ;
}
}
for ( i= len2- 1 , j= 9 ; i>= 0 ; i--, j-- )
{
if ( str2[ i] >= '0' && str2[ i] <= '9' )
{
num2[ j] = str2[ i] - '0' ;
}
else if ( str2[ i] >= 'A' && str2[ i] <= 'F' )
{
num2[ j] = str2[ i] - 55 ;
}
}
carry= 0 ;
for ( i= 9 ; i>= 0 ; i-- )
{
for ( j= 9 ; j>= 0 ; j-- )
{
ans= num1[ j] * num2[ i] + carry;
if ( ans>= 16 )
{
carry= ans/ 16 ;
}
else
{
carry= 0 ;
}
k= i;
ANS[ k] += ans% 16 ;
k--;
}
}
flag= 0 ;
for ( i= 0 ; i< 10 ; i++ )
{
if ( flag== 0 && ANS[ i] > 0 )
{
if ( ANS[ i] > 9 )
{
dectohex( ANS[ i] ) ;
}
else
{
flag= 1 ;
}
}
else if ( flag== 1 )
{
if ( ANS[ i] > 9 )
{
dectohex( ANS[ i] ) ;
}
else
{
}
}
}
}
void main( )
{
int opt;
clrscr( ) ;
printf ( "HEXADECIMAL ARITHMETIC\n 1.Addition\n 2.Multiplication\n 3.Exit" ) ; printf ( "\n Enter your option:" ) ; switch ( opt)
{
case 1 :
Add( ) ;
break ;
case 2 : Multiply( ) ;
break ;
case 3 : return ;
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CmludCBudW0xWzEwXSxudW0yWzEwXSxBTlNbMTBdOwp2b2lkIGRlY3RvaGV4KGludCBhKQp7CiBzd2l0Y2goYSkKIHsKICBjYXNlIDEwOnByaW50ZigiQSIpOwoJICBicmVhazsKICBjYXNlIDExOnByaW50ZigiQiIpOwoJICBicmVhazsKICBjYXNlIDEyOnByaW50ZigiQyIpOwoJICBicmVhazsKICBjYXNlIDEzOnByaW50ZigiRCIpOwoJICBicmVhazsKICBjYXNlIDE0OnByaW50ZigiRSIpOwoJICBicmVhazsKICBjYXNlIDE1OnByaW50ZigiRiIpOwoJICBicmVhazsKIH0KfQp2b2lkIEFkZCgpCnsKIGludCBpLGosY2FycnksYW5zLGZsYWc7CiBpbnQgbGVuMSxsZW4yOwogY2hhciBzdHIxWzEwXSxzdHIyWzEwXTsKIHByaW50ZigiRW50ZXIgZmlyc3QgbnVtYmVyIik7CiBzY2FuZigiJXMiLCZzdHIxKTsKIHByaW50ZigiRW50ZXIgc2Vjb25kIG51bWJlciIpOwogc2NhbmYoIiVzIiwmc3RyMik7CiBsZW4xPXN0cmxlbihzdHIxKTsKIGxlbjI9c3RybGVuKHN0cjIpOwogZm9yKGk9bGVuMS0xLGo9OTtpPj0wO2ktLSxqLS0pCiB7CiAgaWYoc3RyMVtpXT49JzAnJiZzdHIxW2ldPD0nOScpCiAgewogICBudW0xW2pdPXN0cjFbaV0tJzAnOwogIH0KICBlbHNlIGlmKHN0cjFbaV0+PSdBJyYmc3RyMVtpXTw9J0YnKQogIHsKICAgbnVtMVtqXT1zdHIxW2ldLTU1OwogIH0KIH0KICBmb3IoaT1sZW4yLTEsaj05O2k+PTA7aS0tLGotLSkKIHsKICBpZihzdHIyW2ldPj0nMCcmJnN0cjJbaV08PSc5JykKICB7CiAgIG51bTJbal09c3RyMltpXS0nMCc7CiAgfQogIGVsc2UgaWYoc3RyMltpXT49J0EnJiZzdHIyW2ldPD0nRicpCiAgewogICBudW0yW2pdPXN0cjJbaV0tNTU7CiAgfQogfQogY2Fycnk9MDsKIGZvcihpPTk7aT49MDtpLS0pCiB7CiAgYW5zPW51bTFbaV0rbnVtMVtpXStjYXJyeTsKICBpZihhbnM+PTE2KQogIHsKICAgY2Fycnk9YW5zLzE2OwogIH0KICBlbHNlCiAgewogICBjYXJyeT0wOwogIH0KICBBTlNbaV09YW5zJTE2OwogfQogZmxhZz0wOwogcHJpbnRmKCJSZXN1bHQ9Iik7CiBmb3IoaT0wO2k8MTA7aSsrKQogewogIGlmKGZsYWc9PTAmJkFOU1tpXT4wKQogIHsKICAgaWYoQU5TW2ldPjkpCiAgIHsKICAgIGRlY3RvaGV4KEFOU1tpXSk7CiAgIH0KICAgZWxzZQogICB7CiAgICBwcmludGYoIiVkIixBTlNbaV0pOwogICAgZmxhZz0xOwogICB9CiAgfQogIGVsc2UgaWYoZmxhZz09MSkKICB7CiAgaWYoQU5TW2ldPjkpCiAgIHsKICAgIGRlY3RvaGV4KEFOU1tpXSk7CiAgIH0KICAgZWxzZQogICB7CiAgICBwcmludGYoIiVkIixBTlNbaV0pOwogICB9CiAgfQogfQp9CnZvaWQgTXVsdGlwbHkoKQp7CiBpbnQgaSxqLGNhcnJ5LGFucyxmbGFnLCBrOwogaW50IGxlbjEsbGVuMjsKIGNoYXIgc3RyMVsxMF0sc3RyMlsxMF07CiBwcmludGYoIkVudGVyIGZpcnN0IG51bWJlciIpOwogc2NhbmYoIiVzIiwmc3RyMSk7CiBwcmludGYoIkVudGVyIHNlY29uZCBudW1iZXIiKTsKIHNjYW5mKCIlcyIsJnN0cjIpOwogbGVuMT1zdHJsZW4oc3RyMSk7CiBsZW4yPXN0cmxlbihzdHIyKTsKIGZvcihpPWxlbjEtMSxqPTk7aT49MDtpLS0sai0tKQogewogIGlmKHN0cjFbaV0+PScwJyYmc3RyMVtpXTw9JzknKQogIHsKICAgbnVtMVtqXT1zdHIxW2ldLScwJzsKICB9CiAgZWxzZSBpZihzdHIxW2ldPj0nQScmJnN0cjFbaV08PSdGJykKICB7CiAgIG51bTFbal09c3RyMVtpXS01NTsKICB9CiB9CiAgZm9yKGk9bGVuMi0xLGo9OTtpPj0wO2ktLSxqLS0pCiB7CiAgaWYoc3RyMltpXT49JzAnJiZzdHIyW2ldPD0nOScpCiAgewogICBudW0yW2pdPXN0cjJbaV0tJzAnOwogIH0KICBlbHNlIGlmKHN0cjJbaV0+PSdBJyYmc3RyMltpXTw9J0YnKQogIHsKICAgbnVtMltqXT1zdHIyW2ldLTU1OwogIH0KIH0KIGNhcnJ5PTA7CmZvcihpPTk7aT49MDtpLS0pCiB7CiBmb3Ioaj05O2o+PTA7ai0tKQogewogIGFucz1udW0xW2pdKm51bTJbaV0rY2Fycnk7CiAgaWYoYW5zPj0xNikKICB7CiAgIGNhcnJ5PWFucy8xNjsKICB9CiAgZWxzZQogIHsKICAgY2Fycnk9MDsKICB9CiAgIGs9aTsKICBBTlNba10rPWFucyUxNjsKICAgay0tOwogfQp9IAogZmxhZz0wOwogcHJpbnRmKCJSZXN1bHQ9Iik7CiBmb3IoaT0wO2k8MTA7aSsrKQogewogIGlmKGZsYWc9PTAmJkFOU1tpXT4wKQogIHsKICAgaWYoQU5TW2ldPjkpCiAgIHsKICAgIGRlY3RvaGV4KEFOU1tpXSk7CiAgIH0KICAgZWxzZQogICB7CiAgICBwcmludGYoIiVkIixBTlNbaV0pOwogICAgZmxhZz0xOwogICB9CiAgfQogIGVsc2UgaWYoZmxhZz09MSkKICB7CiAgaWYoQU5TW2ldPjkpCiAgIHsKICAgIGRlY3RvaGV4KEFOU1tpXSk7CiAgIH0KICAgZWxzZQogICB7CiAgICBwcmludGYoIiVkIixBTlNbaV0pOwogICB9CiAgfQogfQp9CnZvaWQgbWFpbigpCnsKIGludCBvcHQ7CiBjbHJzY3IoKTsKIHByaW50ZigiSEVYQURFQ0lNQUwgQVJJVEhNRVRJQ1xuMS5BZGRpdGlvblxuMi5NdWx0aXBsaWNhdGlvblxuMy5FeGl0Iik7CiBwcmludGYoIlxuRW50ZXIgeW91ciBvcHRpb246Iik7CiBzY2FuZigiJWQiLCZvcHQpOwogc3dpdGNoKG9wdCkKIHsKICBjYXNlIDE6CgkgQWRkKCk7CgkgYnJlYWs7CiAgY2FzZSAyOk11bHRpcGx5KCk7CglicmVhazsKICBjYXNlIDM6cmV0dXJuOwogfQogZ2V0Y2goKTsKfQo=
compilation info
prog.c:28:13: warning: format specifies type 'char *' but the argument has type 'char (*)[10]' [-Wformat]
scanf("%s",&str1);
~~ ^~~~~
prog.c:30:13: warning: format specifies type 'char *' but the argument has type 'char (*)[10]' [-Wformat]
scanf("%s",&str2);
~~ ^~~~~
prog.c:104:13: warning: format specifies type 'char *' but the argument has type 'char (*)[10]' [-Wformat]
scanf("%s",&str1);
~~ ^~~~~
prog.c:106:13: warning: format specifies type 'char *' but the argument has type 'char (*)[10]' [-Wformat]
scanf("%s",&str2);
~~ ^~~~~
prog.c:179:1: error: 'main' must return 'int'
void main()
^~~~
int
prog.c:182:2: warning: implicit declaration of function 'clrscr' is invalid in C99 [-Wimplicit-function-declaration]
clrscr();
^
prog.c:195:2: warning: implicit declaration of function 'getch' is invalid in C99 [-Wimplicit-function-declaration]
getch();
^
6 warnings and 1 error generated.
stdout