Ovo dole bi trebalo da bude resenje zadatka koji si postavio. Radi u VS6. Mozda sam ga ja malo iskomplikovao, ali za mene je ovo laksi nacin rada

Postavio sam par komentara da lakse mozes da razumes zadatak.
Pozdrav!
Code:
/* MOZES DA RADIS PREKO ASCII KODA SAMO SVAKI BROJ ODUZMES SA 48, JER TO JE ASCII KOD NULE */
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define max 250
main ()
{
int i,j,l,k,m=0,s,q=0,w=0,h=0,r;
char a[max],b[max],c[max];
while(1)
{
gets(a); //UNOSIMO STRING A
fflush (stdin);
if(strcmp(a1,"0")==0)
break;
gets(b); //UNOSIMO STRING B
fflush (stdin);
l=strlen(a); //ODREDJUJEMO DUZINU STRINGA
k=strlen(b);
for( i=0,j=0;i<l,j<k;i++,j++ )
{
if ( (isdigit(a[i]) !=0) && (isdigit(b[i]) !=0) ) //PROVERAVANJE DA LI JE ZNAK BROJ
m++; //AKO JE BROJ "m" SE UVECA
}
fflush (stdin);
//UBACIVANJE NULA MEDJU AKO NIZOVI NISU JEDNAKI
if( l>k && m>0 )
{
s=l;
for(i=k;i<l;i++)
b[i]='0';
}
if ( l<k && m>0 )
{
s=k;
for(i=l;i<k;i++)
a[i] = '0';
}
if ( l==k )
s=l;
fflush (stdin);
if(m!=0)
{
printf("A = ");
for( i=0;i<s;i++ )
printf("%d ",a[i]-48); //UBACIJEMO ZNAK (BROJ) PO ZNAK (BROJ)
printf("\nB = ");
for( i=0;i<s;i++ )
printf("%d ",b[i]-48);
printf("\nKad se brojevi (stringovi) saberu rezultat je: ");
for( i=s-1;i>=0;i--)
{
if ( ((a[i]-48) + (b[i]-48))>10 ) //kad se izvrsi ova operacija sabiranja ako je broj veci od 10
{
r=((a[i]-48) + (b[i]-48)) / 10; //preko ove instrukcije se posle nadovezuje na sledici broj
h= r * 10;
w++;
}
if(i==0) //naredba if je samo za zadnji broj u petlji ili prvi broj kad se cita
{
c[i] = ((a[i]-48) + (b[i]-48)) + r;
break;
}
if( w>1 )
{
q=((a[i]-48) + (b[i]-48)) / 10; //ovo je decimalna cifra kao 10.. samo izrazena u 1.
w=1;//ako je w>1 q ce se dodati na string c
}
c[i]=(a[i]-48)+(b[i]-48)-h + q;
h=0;
q=0;
r=0;
}
for(i=0;i<s;i++)
printf("%d",c[i]);
printf("\n");
}
else
printf("Niste uneli znak koji je broj!\n");
}
}
[Ovu poruku je menjao milovan_regodic dana 02.06.2009. u 02:42 GMT+1]